咨询热线: 4006582019

当前位置: 首页 > POS机产品 > 银盛通pos机

2147483647这可能是全世界最常见的电话号码

发布于 2023-09-16 14:13:12 阅读()作者:147小编

POS机免费领取申请

已有9352成功领取POS机

姓名 *

手机号码 *

地址 *

详细地址 *

2147483647这可能是全世界最常见的电话号码

2147483647这可能是全世界最常见的电话号码

你有没有想过,世界上最常见的电话号码是什么?

2011年,在一个计算机论坛上,有个技术宅突发奇想,提出了这个问题。经过一番搜索,他还真的找到了答案。全世界最常见的号码是:214-748-3647,在当时,这个号码在谷歌上有大约285,000个搜索结果。

国内也有不少

这个号码的主人到底是谁?它怎么能同时出现在这么多网站上?

其实,这串号码有“神秘力量”,它不只是最常见的号码,还经常出现在工程、计算机领域。如果你看到了这串数字,最好赶紧停下来想一想是不是有什么地方不对头。

神秘数值2,147,483,647

2,147,483,647不是一般的数字。

首先它恰好是一个质数,而且2,147,483,647这个数值等于2^31−1,因此它也是第8个梅森素数(即形式为2的整数次方减去1的质数)。

不过,2,147,483,647最重要的一个身份,是32位计算机操作系统的计数上限

今天的计算机系统绝大多数都要追溯到IBMSystem/360操作系统,它是世界上首个指令集可兼容计算机。

在这个系统当中,整数使用4个字节保存。一个字节(byte)是8位(bit),4个字节就是32位,最高位是符号位,那么实际上可用的只剩下31位。又因为一个位有两个状态(0或1),这种方式所能保存的最大整数是2的31次方减去1(0占了一个名额),即2,147,483,647。

如果在系统中储存的整数超过了这个值,系统就会发生整数溢出(integeroverflow),自动把数值转化成2,147,483,647。

很显然,有大量的摸鱼程序员,把电话号码当成普通整数,用4个字节来保存它。于是当用户输入的号码大于2147483647时,就会自动转成这个数字。它就这么成了网上最常见的电话号码。

超过2,147,483,647,就会有可怕的事发生哦

2,147,483,647这串数字不只是最常见的电话号码,还经常在别的地方客串。

2020年在《原神》游戏中,有个玩家开**,打出的伤害值也刚好是2,147,483,647点(因为没法更高了)。

在游戏里这么干是会被封号的,也很不道德,千万不要尝试

正常情况下,这个数值大约相当于21个亿,完全够用了,不过随着互联网的快速发展,超越这个数值并非不可能。

2014年12月,网络神曲《江南style》的YouTube累计播放量就超过了这个数值。YouTube把这件事视为一个公关的良机,并随之修正了计数系统。新的计数上限为9,223,372,036,854,775,808,比旧的计数方法高出了一亿倍。

虚拟世界里的整数溢出还是小事,但在工程领域,整数溢出可能导致程序崩溃,后果就很严重了。

2015年,美国联邦航空管理局(FAA)发布报告称,波音787飞机可能会因为整数溢出问题突然“死机”。

具体来说,负责调控飞机引擎供能的控制组件以0.01秒的精度计时,当飞机连续飞行248天时,计时系统就会达到2,147,483,647个0.01秒,然后发生溢出,令控制组件启动故障保护模式(failsafemode)。

这个问题虽然可怕,但解决方案十分简单粗暴,那就是——定时关机重启

时间来到2,147,483,647秒,会怎样?

大多数时候,重启设备不会导致时间归零,比如你手机上显示的时间。这类设备中主要使用的是UNIX时间系统,从1970年1月1日00:00:00(UTC)开始计时。那么,这个系统什么时候会达到计时上限呢?答案是——15年后。

1999年,一位名叫WilliamPorquet的程序员发现,到2038年1月19日03:14:07,恰好是1970年1月1日起的第2,147,483,647秒。这就好像2038版本的“千年虫”问题。于是Porquet建了一个网站,2038.org,提醒同行及时debug。

当然,他也接到了很多这样的反馈:“好的,那我们2037年再去debug。”

Porquet担心,一些无人维护的软件到时候会陷入崩溃,造成未知的后果。不过剑桥大学的计算机科学家MarkusKuhn接受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/2,147,483,647

[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

作者:玛雅蓝

编辑:翻翻,游识猷

封面图来源:fandom

为什么在vb里数值型变量最多只能算出15位,有办法解决么

这是因为电脑是用有限的内存位数来表示数字的,不可能用任意位数来表示数字,否则再大的内存也不够用。比如整数分字节型(1个字节,范围0~255)、整型(2个字节,范围-32768~32767)、长整型(4个字节,范围-2147483648~2147483647),小数则用浮点数来表示,分单精度浮点数(4个字节,7位有效数字)、双精度浮点数(8个字节,15位有效数字)。

其实15位有效数字对于个人电脑来说已经够用了。再大就属于天文数字的运算,而这应该用超级计算机来运算,PC是无法胜任的。

生活中一些虽然是数字,但并不用参与运算的数据,比如***号码、电话号码等等,应该用字符串变量来储存,不能用数值型变量。

为什么不要尝试用int来存手机号?

以电话号码11883419968为例:

int只有四个字节,32bit,最高一位是符号位存储空间不计数,也就是-2^31~2^31-1转换为十进制为-2147483648~2147483647(21亿多),而int默认十进制 ,比较最大值2147483647<11883419968(118亿多),所以超出,超出部分虽然还在计数,但是超过的机器读不出来算溢出,于是int不能拿来处理电话号码

相关文章推荐