龙空技术网

陪伴了整个中学时代的计算器,你真会用吗?

差评 221

前言:

如今各位老铁们对“c语言溢出计算器”大概比较注意,姐妹们都需要分析一些“c语言溢出计算器”的相关内容。那么小编在网上网罗了一些有关“c语言溢出计算器””的相关内容,希望各位老铁们能喜欢,姐妹们快快来了解一下吧!

更多好玩的科普,快关注“差评”~

在输入数据准确的情况下,计算器的计算准确度是 100% ,这一点想必用过计算器的人都不会否认。

那我问你一个问题:10% + 10% 等于多少?

一般人哪怕是小学生,估计都会脱口而出答案是 20% ,或者是 0.2 。

不就是个简单的 10 + 10 的问题嘛?

可是有人却发现,这么简单的问题,计算器却出了“ 错 ”。

根据这个微博上的说法,几乎所有的手机计算器,在计算 10% + 10% 这个问题时,都会得出 0.11 的答案,并普遍被认为是一个 BUG 。

小发也用自己的手机试了试,发现还真是这样。

iPhone 在测试后也是同样的结果。

其实从 iPhone 计算器的运算过程中我们就可以发现,问题的本质在于我们和计算器的运算逻辑不同。

由于 iPhone 在输入百分号后会直接显示结果,我们可以看到第一个 10% 按下后,系统显示的结果是 0.1 ,而第二个 10% 则变成了 0.01 。

也就是说计算器把第二个 10% 认定为之前输入的 10% 的十分之一,结果就变成了 1% ,10% + 1% 结果可不就是 11% ,0.11 嘛。

会出现这样的结果是有原因的。。。

一开始计算器上是没有 % 这个符号的,但是为了方便国外人用计算器计算一件东西的折扣或者税率,而专门设计了 % 这种运算方式。

给大家举个栗子:原价 10 块的东西,今天有 8.5% 的折扣,那么就可以表达成 10 - 8.5% = 9.15 ,这时候这个 8.5% 会默认乘以前面输入的数字。。

因此这种计算方法也就成为了全球标准的计算器运算逻辑,而这种计算器也叫做:百分计算器。

要是换成在中国,我们会直接说这东西打 9.15 折,计算方式会变成 10 X 0.915 = 9.15 ,所以国内大家并不熟悉这套百分计算器的逻辑。

结果是一样的,但是解题思路不一样罢了,谁叫计算器是外国人先发明的呢?国际标准只能按他们的来了。

所以说,10% + 10% = 0.11 严格来说并不是计算器的 BUG 。

可是计算器终究是由人创造出来按照固定逻辑进行数值运算的设备,只要是人为编程,肯定是会存在 BUG 的,那么计算器出了 BUG 会是什么样呢?

记得小时候,刚开学拿着计算器的我听见一个坊间传说:只要拿着你的计算器按照一定顺序按下某些字符,就会出现非常神奇的事情。

这种行为被叫做“ 爆机 ”,在学生群体中非常流行。

我们都知道,一般情况下科学计算器如果输入了一些常规的不符合计算规则的数据,它会显示一个“ error ”来表示出错。

这种情况下系统会提示操作者如何进行操作,属于正常的错误范围。

可“ 爆机 ”状态不一样,在这个状态下,整个屏幕都会显示乱码,什么都看不清楚,更不用说继续操作了,一般只有重启能解决问题。

甚至有的情况下,连开关键都会失效,只能通过抠电池强制重启来解决。

如果把计算器的计算过程比作做菜,普通报错只是相当于放错调料味道不对,还是有补救机会的,“ 爆机 ”则像是你往炒锅里加入了铝热剂,打得炒锅猝不及防。。。

其实“ 爆机 ”的原理就是输入某些数据使得计算结果数据溢出,造成计算器的显示错误。

如果学生们研究爆机只是为了炫耀铝热剂可以把炒锅烧糊,那么长大之后依然坚持研究爆机的人,他们的目标就是真的用铝热剂来出一本菜谱了。。。

我们都知道,现在市场上的科学计算器品类很多,每个品牌下又各自有许多型号,同样的爆机方法不一定就能适用于每一台计算器。

有许多爆机爱好者专门聚在一起,组建了一个叫 fx-es(ms) 的贴吧,从根本原理层面上研究计算器的爆机过程,并且汇总了各种计算器的爆机方法。

随便打开其中一个目录,你就会发现它的下方有非常详细的各种错误、乱码的方法以及实测。

与此同时还有许多贴吧的吧友也在分享着自己的爆机经验,学术氛围之浓厚,学术态度之严谨,不知道的人还以为自己来到了 C 语言吧。

在研究爆机的过程中,他们接触到了科学计算器的底层原理,于是便不再满足于爆机,而是在计算器上做更有趣的事情 —— 编程 。

比如用计算器玩打桌球游戏。

或者把它当做一个模拟器来玩《 精灵宝可梦 红 》,还是彩色的!

有的人甚至可以用计算器进行输入练习。

计算器在绝大多数人眼里,都是一个非常可靠的计算工具,在小时候它能帮我们解开四则运算,帮我们解开一元二次方程,甚至能帮我们画出函数图像。

这简直是数学之神的化身啊!

可随着我们慢慢长大,我们发现这个“ 数学之神 ”也不是完美无缺,它也存在 BUG ,甚至我们可以在了解其原理后操控它做其他事情。

人天生都有着求知探索的精神,而这些计算器 BUG 被发现解决的过程,何尝不是一种另类的乐趣呢?

“ 我已经忘了该怎么按了。。。”

标签: #c语言溢出计算器