主题:
字号:
16
行距:
2.0

第461章 还有高手?[1 / 5]

顾凡继续解释道:“那么计算机具体是怎么储存小数的呢?

“这就是我之前所说的‘浮点数’,浮点的意思是,小数点是可以浮动的。

“就比如1000.101这个二进制数,就可以表示为1.000101x23,这有点类似于数学上的科学计数法。

“在程序中,为了让二进制用到科学计数法,并且规范化,就要保证小数点左侧只有1位,并且必须为1,我们目前绝大多数计算机所使用的浮点数,都是IEEE制定的国际标准,采用符号位+指数位+尾数的格式。

“总之,由于存在十进制到二进制之间的转化,所以按照这种方式来计算,0.1+0.2并不等于完整的0.3,因为在计算机中,很多小数都无法用完整的二进制来表示,所以只能用近似数的方式来储存,那么两个近似数相加,也只能是一个新的近似数。

“十进制转二进制计算,然后再转十进制输出,这就导致了前后两个数不相等的情况。”

莉莉丝眉头紧皱:“那为什么不能用十进制精确计算呢!”

顾凡轻咳两声:“这个……如果要从头解释『计算机为什么要使用二进制』的话,就太复杂了,一时半会说不清。

“但针对这个问题,我可以从另一个角度来说明为什么大家会容忍这种误差,因为这种误差本身就是不可消除的。

“即便是十进制,也会出现许多无法除尽的情况。十进制只是能够精确表达2和5能够除尽的数字,但对于1/3、1/7这样的数字,十进制也就无能为力了,同样也会产生误差。

“所以不管采用什么样的进制,误差都是必然存在的。”

莉莉丝感到大脑冒烟:“好吧,我知道了,在计算机里面0.1+0.2≠0.3,那么这个bug又是怎么回事?”

顾凡长出了一口气:“莉总你能理解这一点的话,这个bug解释起来就稍微容易一些了。

“简单来说就是,程序员在写动态难度的代码时,没有考虑到这种999后面还带小数的极端特殊情况,没有为这种特例专门写一个判定,因此在数值互相转化的过程中,程序无法判定这个数字具体处于哪一个难度区间中,就直接降为了最低难度。

“站在人的角度上来

本章未完,请点击下一页继续阅读!

陈情令系列之
残缺的笑1005
离婚后的我开始转运了
安平泰
家族除名第一天,奖励武神躯!
他们都叫我亚瑟王
民间风水禁忌
熊猫大侠
我的抗战有空间
六零山人
抗战之随身空间
六零山人reborn
阿拉德的不正经救世主
想吃大鱼的猫
领主:从开拓骑士开始
快乐就行其他无所谓
重生七零:知青在北大荒
易子晏
官道危途
任语丁
全民游戏:从丧尸末日开始挂机
帝国黑铁战士
我的歌星女友超凶猛
连衣
梦里修仙千年,醒来我已无敌
心在流浪
重回1982小渔村
米饭的米
公若不弃,愿拜为义父
辣酱热干面
妖尾:我才不要当会长
想吃冰棒
穿越,然后被富家JK堵门
晚不鸽
修仙界只有妖女了是吗
月下千早
四合院之扮猪吃老虎
戈壁孤狼夜
半岛头号玩咖!
HKDoll
半岛小行星
鸡兔同笼
美警生存实录:以德服人
夜叶总差
诡异监管者
露馅的芝麻胡
发薪就能变强,我有十亿员工!
今月曾经照古河
大明:从战场捡属性开创诸天大明
无谅888
不能开高达那我还参什么军!
幽灵从不迷路
混沌天帝诀凌峰苏琳
剑轻阳
魔王大人深不可测
晨星LL
第四天灾从不相信钢铁洪流!
喀秋莎第一可爱
人在斗破:天赋绝世竟带系统
仪昔
超武斗东京
木隐红尘
噬恶演武,诸天除魔
温茶米酒
F1:车神养成日记
诸位贱笑了
从梁祝开始燃烧世界
小黑帽
人在峨眉,开局获取金色词条
黑白大团子
祭祀百年,我成了部落先祖
山人有妙计
斗罗:三位一体,我贯穿了时间线
我不开挂
仙命在我
杜养吾
谁教他这么复国的
星罗封陈
别打扰邪术师搞科研
一枚有趣的土豆
精灵:开局格斗馆主,被娜姿缠上
今天洛尘涅槃了么
重生华娱,95小花养成日记
闻风太白
超凡崛起:开局契约银龙女伯爵
汤姆不吃糖
开局金风细雨楼主,一刀惊天下
升斗烟民
被夺一切后我成了仙道魁首
盛唐无夜
六十大寿来系统,儿子被退婚了!
九月有二
我靠烧香爆红娱乐圈
容焉
秦时小说家
偶米粉
从肝熟练度开始长生不死
乌鸦还是黑的好
战锤之黑皇帝
辣椒炒恶魔