《程序是怎样跑起来的》第三章
我是现代信息技术学院的李燕飞,在计算机中小数的存储方式与上一讲述的数据存储方式一样,都是通过位权来实现的,只不过整数部分从个位开始是乘以2的0次方依次往下增;而小数则是乘以2的-1次方依次往下减。
而小数之所以会在计算时失误,就是因为有些十进制小数无法用二进制精确的表示出来,比如0.1,此时计算机会使用相近的的数据进行表示。
很多编程语言都使用了浮点数表示小数,浮点数分为符号,尾数,基数,和指数四个部分来组成,因为基数是2,所以一般忽略。符号位与整数一样,1表示负数,0表示正数。而尾数部分使用了整数部分固定为一的规格化表示,指数部分使用了移码表示法。
规格化表示目的是统一形式,一种数据用着不同的表示方法,但多种表示方法对于计算机来说不好处理,于是规格化表示规定整数部分为一,又因整数部分一定是一,这样做还能够少许提升数据表示范围;移码表示法就是将指数部分表示范围的中间值规定为零,其上为正,其下为负,因为小数要用到2的负几次方,用移码表示法就可以在不使用符号位的情况下表示负数了。例如指数部分有八位,则将最大值255的一半127设为0,那么128为1、126为-1,以此类推。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)