电话号码中为什么不加一位 checksum?经常接到有人输错号码打错的电话,哪怕只加 1bit 校验效果也能降低 50%概率

2025 年 4 月 17 日
 drymonfidelia
18595 次点击
所在节点    程序员
154 条回复
MoYi123
2025 年 4 月 17 日
这么多人觉得一定要多加一位数的?
那是不是也理解不了为什么 90000 和 60000 都是 5 位数, 为什么一个能用 int16 表示, 一个不能?
ccvip
2025 年 4 月 17 日
作为曾经的运营商工作人员,我只能说,这种事是违背运营商利益的,1 影响卖吉祥号 2 影响收入 3 增加设计复杂难度 4 增加运营成本和管理成本

你打错电话,运营商是赚钱的,本来收 1 份,打错了可以收 2 份。
现在谈论固话没意义了,手机号中间四位是区号,如果再增加一位校验码,号码资源就更少了,势必影响收入

出力不讨好的事情谁干?
billccn
2025 年 4 月 17 日
@restkhz
> 要是让它搞个内存,存你拨的号然后再跑校验算法就太难为他了。

你小看机械式交换机了,里面是有内存的(靠移动和检测机械装置的物理位置),也可以做出图灵机跑算法(毕竟图灵的时代根本没有集成电路)。

一般自动交换机管你拨号和接通是两个机器(可以看成分别的程序),第一个机器先分析你是打本地还是其他局,如果是其他局你后面拨的号码就会缓存在本地,同时它去找一个空闲的中继线,中继通了以后它会把整个号码一股脑地拨出去。
mayli
2025 年 4 月 17 日
大部分人类交互的号码都没有校验位,比如电话 车牌 qq 邮箱 美国 ssn 网站域名
加入校验位的目前常用的只有身份证号码,也是历史遗留问题,毕竟信息时代姓名+身份证号码验证并不难,但是信息化之前 ,由于户籍系统的复杂性,这玩意弄错了,会给公仆和人民造成麻烦。
实际上这玩意不是啥好的设计,比如号码里面带个 X, 号码里带了生日和性别,导致巨长。
tozp
2025 年 4 月 18 日
这就是工程师思维了,
只想着解决一个问题是不够的
vvhy
2025 年 4 月 18 日
@drymonfidelia #15 新增的 bit 本来可以用来分配给同样多的人,那不就是 50%吗
ZE3kr
2025 年 4 月 18 日
那你家地址也可以加一位,邮编也加一位,单元号、门牌号也都可以加一位。都可以降低输入错误的概率。不加是为了更短呗,SSN 都没有额外的校验位
si
2025 年 4 月 18 日
全部号码升级的难度太大,如果旧号码也执行,那差不多要剔除一半号码。
如果只对新出的有效,目前号码已经基本够用,感觉没有出新号段的必要了,能分配的号段也不多了。
面对绝大部分都是旧号码,这个功能的作用太小了。
如果单独加一位数字,那手机肯定会有自动计算校验码的功能,这又起不到作用了。
我用了多年的移动和电信号码好像没有遇到打错过,有个前两年办的联通号码倒是遇到过几次,不知道是因为以前别人用过的旧号码还是真的打错了。
我很好奇有多少人经常遇到打错电话的,是靓号吗。
hxy100
2025 年 4 月 18 日
四个字,没这必要
unsized
2025 年 4 月 18 日
号码最后设计一位助词位,用来检测前 11 位是否输入错误,可选输入

如果输入 11 位,当普通号码处理
如果输入 12 位,启用校验。
issues
2025 年 4 月 18 日
11 个数字全输入错 算下概率多大
crackidz
2025 年 4 月 18 日
大哥你有没有想过错了能怎么样....为了这个很无所谓的功能减少了 9/10 的空间合适吗...
issues
2025 年 4 月 18 日
从产品方面来讲,打错号码是客户的使用问题,还能增加收益,加入这个功能还增加成本. 这种吃力不讨好的 你觉得会做么
wangtian2020
2025 年 4 月 18 日
打错电话是什么很严重的事情吗
ccvip
2025 年 4 月 18 日
!!! 假如,真的要执行起来

1 )校验计算是放在终端设备还是运营商基站? 如果都放在本地设备校验,大小厂商的设备怎么适配,出了新号段是否要升级更新规则?智能设备还好,固定电话、功能机怎么增加校验?

2 )如果放在基站校验,问题是本来打错号是空号就有空号返回提示,号段不完整也会返回空号,如果打的号码符合校验规则且有人使用就会接通。 这样做还是解决不了根本问题,只是降低了打错电话概率,打错电话运营商照样收费,他何必自寻烦恼?

所以,即使这确实能提升用户小概率的体验,我仍然感觉这是个极小众需求,没有可行性。
FaHfsy1jNwH0827v
2025 年 4 月 18 日
想法很好,但作为程序员,别人的屎山你愿意领头踩还是继续运行?
xuanbg
2025 年 4 月 18 日
我很少接到打错的电话,而我自己从来没有打错过电话。

直接拨号的话,号码增加 1 位增加了号码记忆难度,反而提升了拨错号的可能性。如果是电话簿拨号则不会有拨错号的可能。

这主意简直就是本世纪最臭的馊主意
shaozelin030405
2025 年 4 月 18 日
打错了重打。成本比你的方案低
krixaar
2025 年 4 月 18 日
@moudy #51 OP 认为自己接到的打错电话:不小心按错了一位拨到别人手机的情况频繁发生,大多数人不用通讯录,不用微信语音,都是拨号打电话的。实际上生活中的打错电话:你的手机号是二次放号的,别人打的自己存的号码。OP 用高成本(扔掉 90%的可用号码,因为校验位必然是唯一的)解决了最不经常发生的情况,对第二种情况无能为力,你还觉得是个好 idea 。
QingXuJiaZhi
2025 年 4 月 18 日
根本没必要,打错就打错了,小概率,极小损失。

针对一个小概率且极小损失的问题做任何设计都是亏本的!

而且现在什么年代了,电话号码输入了打一下验证正确,就再也不会手动输入号码了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/1126194

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX