本文来自微信公众号:果壳 (ID:Guokr42),作者:玛雅蓝,题图来自:《赌侠》
(相关资料图)
你有没有想过,世界上最常见的电话号码是什么?
2011年,在一个计算机论坛上,有个技术宅突发奇想,提出了这个问题。经过一番搜索,他还真的找到了答案。全世界最常见的号码是:214-748-3647,在当时,这个号码在谷歌上有大约285,000个搜索结果。
这个号码的主人到底是谁?它怎么能同时出现在这么多网站上?
其实,这串号码有“神秘力量”,它不只是最常见的号码,还经常出现在工程、计算机领域。如果你看到了这串数字,最好赶紧停下来想一想是不是有什么地方不对头。
神秘数值2147483647
2147483647不是一般的数字。
首先它恰好是一个质数,而且2147483647这个数值等于 231− 1,因此它也是第8个梅森素数(即形式为2的整数次方减去1的质数)。
不过,2147483647最重要的一个身份,是32位计算机操作系统的计数上限。
今天的计算机系统绝大多数都要追溯到IBM System/360操作系统,它是世界上首个指令集可兼容计算机。
在这个系统当中,整数使用4个字节保存。一个字节(byte)是8位(bit),4个字节就是32位,最高位是符号位,那么实际上可用的只剩下31位。又因为一个位有两个状态(0或1),这种方式所能保存的最大整数是2的31次方减去1(0占了一个名额),即2147483647。
如果在系统中储存的整数超过了这个值,系统就会发生整数溢出(integer overflow),自动把数值转化成2147483647。
很显然,有大量的摸鱼程序员,把电话号码当成普通整数,用4个字节来保存它。于是当用户输入的号码大于2147483647时,就会自动转成这个数字。它就这么成了网上最常见的电话号码。
超过2147483647,就会有可怕的事发生哦
2147483647这串数字不只是最常见的电话号码,还经常在别的地方客串。
2020年在《原神》游戏中,有个玩家开外挂,打出的伤害值也刚好是2147483647点(因为没法更高了)。
在游戏里这么干是会被封号的,也很不道德,千万不要尝试,图/《原神》
正常情况下,这个数值相当于21个亿,完全够用了,不过随着互联网的快速发展,超越这个数值并非不可能。
2014年12月,网络神曲《江南style》的YouTube累计播放量就超过了这个数值。YouTube把这件事视为一个公关的良机,并随之修正了计数系统。新的计数上限为9,223,372,036,854,775,808,比旧的计数方法高出了一亿倍。
虚拟世界里的整数溢出还是小事,但在工程领域,整数溢出可能导致程序崩溃,后果就很严重了。
2015年,美国联邦航空管理局(FAA)发布报告称,波音787飞机可能会因为整数溢出问题突然“死机”。
具体来说,负责调控飞机引擎供能的控制组件以0.01秒的精度计时,当飞机连续飞行248天时,计时系统就会达到2147483647个0.01秒,然后发生溢出,令控制组件启动故障保护模式(failsafe mode)。
这个问题虽然可怕,但解决方案十分简单粗暴,那就是——定时关机重启。
时间来到2147483647秒,会怎样?
大多数时候,重启设备不会导致时间归零,比如你手机上显示的时间。这类设备中主要使用的是UNIX时间系统,从1970年1月1日00:00:00(UTC)开始计时。那么,这个系统什么时候会达到计时上限呢?答案是15年后。
1999年,一位名叫William Porquet的程序员发现,到2038年1月19日03:14:07,恰好是1970年1月1日起的第2147483647秒。这就好像2038版本的“千年虫”问题。于是Porquet建了一个网站,2038.org,提醒同行及时debug。
当然,他也接到了很多这样的反馈:“好的,那我们2037年再去debug。”
Porquet担心,一些无人维护的软件到时候会陷入崩溃,造成未知的后果。不过剑桥大学的计算机科学家Markus Kuhn接受BBC采访时表示,许多旧的软件和设备预计到时候已经被淘汰,或者在2000年“千年虫”问题之际得到了升级改造,预计2038年不会出现比“千年虫”更严重的问题。
说到设备淘汰,至少固话是已经走在这条路上了。
在过去十年中,全世界的固话逐渐被移动电话所取代。想想你自己上一次使用固话是什么时候,就能直观感受到这种趋势。在我国,固定电话普及率从2011年的21.3部/百人下降到2021年的12.8部/百人,也就是说如今只有大约十分之一的人还在使用固话。
数据来源:工信部|cnii.com.cn
随着固话的退场(和程序员们的进步),传说中最常见的电话号码214-748-3647,也和固话一样,成了时代的眼泪。如果你喜欢这个数字,可以在北京时间2038年1月19日11:14:07,在心中向它举杯致意,并庆祝人类安然度过一个小危机。
参考文献
[1]https://projectricochet.com/blog/most-common-phone-number
[2]https://en.wikipedia.org/wiki/2147483647
[3]https://new.qq.com/rain/a/20201207A06K1300
[4]https://www.bbc.com/future/article/20150505-the-numbers-that-lead-to-disaster
[5]https://www.bbc.com/news/world-asia-30288542
https://www.theregister.com/2015/05/01/787_software_bug_can_shut_down_planes_generators/
[6]https://www.theregister.com/2020/04/02/boeing_787_power_cycle_51_days_stale_data/
[7]https://www.cnii.com.cn/ssgx/202201/t20220126_353992.html
本文来自微信公众号:果壳 (ID:Guokr42),作者:玛雅蓝
Copyright @ 2008-2015 www.news9.com.cn All Rights Reserved 中国投资网 版权所有 关于我们
浙ICP备2022016517号-5
免责声明:本文仅代表作者观点,网站刊登本文出于传递更多信息的目的,并不意味赞同其观点或证实其描述。如因文章内容、版权请联系qq邮箱:514 676 113@qq.com