首页
社区
课程
招聘
[旧帖] [转帖]编程问题导致出现频率最高的电话号码。 0.00雪花
发表于: 2011-3-14 19:39 1310

[旧帖] [转帖]编程问题导致出现频率最高的电话号码。 0.00雪花

2011-3-14 19:39
1310
网上有许多电话号码,你知道最常见的是哪个?

有个 老外 找到了答案,这个号码就是2147483647。

事情是这样的,我们知道,在计算机中,整数往往用4个字节保存。4个字节就是32位,由于最高位是符号位,那么只剩下31位,也就是说,这种方式所能保存的最大整数是2的31次方-1(因为要去掉零),即2147483647。

这个老外突然意识到,这是一个10位数,与美国电话号码的位数相同。于是,他就很好奇,214-748-3647会是谁的号码呢?

214是美国达拉斯市的区号,但是 搜索 后发现,超过1500个网站上有这个号码,遍布全美各地。

为什么会这样?

很显然,大量程序员考虑不周,使用4个字节的整数保存电话号码。当用户输入的号码大于2147483647时,就会自动转成这个数字。因此,它就成了网上最常见的电话号码。

--------------------------------------------------------------------------------

我一时兴起,想看看国内有没有人犯这个错误。事实证明,真的是有 一大把 :

因为我国的长途区号没有0214,所以这个号码只能是在上海(区号021)。一想到他会接到各种各样的来电,要求提供租车服务、租房服务、美容服务、餐饮服务、耐磨材料等等,我就对021-47483647的主人充满同情。

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 33
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
这机主还是很有人气的,可以顺道开上一些分机,分别提供各项服务
2011-3-15 09:02
0
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
很多人都应该用string型吧
2011-3-15 13:16
0
雪    币: 201
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
首先我想问难道不能是无符号数 干嘛最高位非要是符号位,如果是无符号数也就不存在楼主说的常见号码问题或者说214-748-3647这个号码是常见号码这一问题了,还有一点就是超出的部分通常计算机处理应该是截断,而不是自动转为2的32次方减一这一个数,我这两个问题不知道提的对不对,望见谅
2011-3-15 19:30
0
雪    币: 201
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
还可以采用大数这一思路来编程,举例就是说用一个数组来表示一个数字,可以将1000作为一个位,即是采用1000进制来进行计算,这样可以避免整数溢出
2011-3-15 19:33
0
游客
登录 | 注册 方可回帖
返回
//