八字强弱自动计算器(一个小小计算器)

终于有人注意到这个问题了

每个人的手机当中都藏着一个难以察觉的漏洞

它也许微不足道但运气不好也可能会酿成财产损失

嗯就是前两天上了热搜的

事情是这样的

机哥先问问大家一个简单的计算题

1010

毫无疑问答案是20

如果用小数表示也就是02

可据网友们反映这道简单的计算题却让大部分品牌的手机阵亡

巧了机哥啥都缺唯独不缺手机

所以分别拿出主流品牌的手机试了试

结果如下

华为

1010011

小米

1010011

OPPO

1010011

vivo

1010011

一加

1010011

国产热门品牌全线阵亡我们来看看国外的厂商

苹果

1010011

三星

1010011

看来无论是国产还是国外品牌无一例外地栽了

真的无一幸免吗

当机哥绝望地把目光投到国产小厂希望出现了

魅族

感动这就叫极致打磨啊朋友们

除此之外网友说另一家小厂商锤子也能通过这次考验

机哥拿出坚果R1试了一下

锤子的计算机常规界面并没有这个符号

咱只能切换到科学计算器上

果然它也算出了我们想要的答案

101002

但是普通计算器和科学计算器逻辑肯定会有不同对比稍有点不公平

OK所以机哥今天决定把年度最佳计算器的称号

颁给魅族

不过凡事咱们不能只看表象

手机厂商们齐刷刷阵亡背后的原因到底是什么

其实拿小米做运算的时候端倪就已显现

你们仔细看看机哥输入的动作

当机哥输入第一个10算式栏会直接把它转化成01

可第二个10却被转化成001

这么一相加结果当然是011

可问题是计算器为什么会把第二个10识别为001

其实稍微想想咱就能明白计算器认为10在人类的语境中代表的是加前一个数的10

所以尽管输入的是1010计算器实际执行的是1010×10

今天一早小米产品总监MIUI小凡和荣耀总裁赵明不约而同地在微博上解释了这件事

他们都有提到一个情境可能会让你更加理解这样做的意义

欧美那边的餐厅时常会有给小费的习惯

假设机哥消费200块钱给10小费请问最后我该给多少钱

如果按严谨的算术规则来写应该是

这对于从小精通算术的中国人来说没毛病

但对于那些算术稍弱的欧美人来说就不是这样了

他们习惯于口语表达200块加10

然后双手跟着大脑在键盘里按下20010这样的算式

为了迁就他们手机系统无论是安卓还是iOS都会把不严谨的算式自动转化一番

最后他们还是能得到正确答案220

OK现在你们理解手机为什么会出1010011这种问题了吧

只不过是套用了这个优化规则而已

而转换到科学计算器之后部分品牌又恢复了理智

比如小米

话说虽然这一话题最近才在国内引爆

但国外有网友早在2016年就对这件事产生过迷惑

这位网友的质疑正好和我们相反

他觉得100101001是错的

而且手机的计算器不是第一次出错了

2011年MIUI论坛上出现过这样一则帖子

惊爆低级错误Android计算器出错

这位网友在HTCDesire手机的计算器中输入

14521449

答案本该是003

但他的计算器算出来是0

图片来自MIUI论坛

这个错误就不是feature而是一个实打实的程序缺陷

接下来拿出小本本机哥来给大家讲解一下为什么会出这种错误

轻度烧脑时间开始

我们知道手机计算器虽然是用十进制显示但背后的运算靠的依然是二进制

也就是说当我们输入1010计算器幕后实际执行的是10101010

十进制的10转换为二进制就是1010

所以回到楼主提出的算式14521449

问题就出在1452和1449这两个数虽然在十进制中看起来清爽无比

但转换为二进制的时候它们会变成无限循环的数

为什么无限循环机哥就不说了那是数学上的问题我们知道结果就好

你看机哥用的这个二进制转换器就提示超出计算精度

没办法超出就超出吧咱们用这个只保留16位的小数进行下一步运算

两者相减等于0

再把它转换回十进制结果是

这个转换器精度只有16位把我输入的数略掉了一位

看吧0错误答案就是这样出来的

而早期安卓手机计算器的浮点精度虽然比机哥的16位高但也是有限的

所以他们的答案是0

轻度烧脑时间结束

总而言之这个问题不是MIUI的错也不是HTC的锅都是来源于Android

当时的安卓手机几乎全部中枪

你们不用拿出手机试这个bug早就被修复了

除了安卓iOS也闹过所谓的计算器bug

2017年苹果推出iOS11

有网友反映自带的计算器在计算123这样的幼儿园算术题居然会给出24的结果

出bug的原因非常简单就是因为用户第一次点击它会有个淡入淡出的动画

一旦输入太快动画还没结束时用户第二次点击的无法被识别

所以算式会从123变成123答案自然变成24

后来苹果在iOS112版本中粗暴地去掉加号的淡入淡出动画修复此bug

图片来自BenjaminMayo

再后来的iOS113苹果加回动画提高响应速度彻底解决这个问题

图片来自BenjaminMayo

看了这么多计算器bug是不是对咱们手中的智能手机产生怀疑了呢

要我说嘛还是学好数理化背熟九九乘法表凡事靠自己才是硬道理

(0)
上一篇 2022年3月31日
下一篇 2022年3月31日

相关推荐