程序是怎样跑起来的-第03章 计算机进行小数运算时出错的原因

第03章 计算机进行小数运算时出错的原因

热身问题

1:二进制数0.1,用十进制数表示的话是多少?

    0.5

2:用小说点后三位的二进制数,能表示十进制数0.625么?

    0.5+0.125,二进制表示为:0.101。

3:将小数分为基数、尾数、指数和符号4部分进行表现的形式称为什么?

    浮点数形式。浮点数是指把小数用“符号 尾数*基数的指数次冪”这种形式来表示。

4:二进制数的基数是多少?

    2。

5:通过把0作为数值范围的中间值,从而在不使用符号位的情况下表示负数的方法称为什么?

    EXCESS系统表现。excess |ɪkˈses| A.noun 过量 过度。如把八位二进制数的一半0111 1111看作是0,那么0111 1110则表示-1;

6:1010 1100.0101 0011这种二进制数,用十六进制数表示的话是多少?

    AC.53


3.3节 计算机运算出错的原因

    十进制数0.1转化成二进制数后,会变成0.000 1100 1100……(1100循环)这样的循环小数。就像十进制无法表示1/3一样,计算机这个功能有限的机器设备,无法处理无限循环的小数的。

    很多编程语言都提供两种表示小数的数据类型。分别是双精度浮点数和单精度浮点数(double、float |fləʊt| verb 浮 漂浮 飘浮)。双精度浮点说类型用64位、单精度浮点数用32位来表示全体小数。

    浮点数是指用符号、尾数、基数和指数四部分表示的小数。双精度浮点数:符号部分[1位]指数部分[11位]尾数部分[52位];单精度浮点数:符号部分[1位]指数部分[8位]尾数部分[23位]。尾数部分用的是“将小数前面的值固定为1的正则表达式”。


3.5 正则表达式和EXCESS系统

     浮点数表示法中¥[尾数]部分用的是将小数前面的值¥[固定为1]的正则表达式。指数部分用的是“EXCESS系统表现”。以8位为例:0111 1111表示0[个人觉得没什么用,一样只能表示256种数]。尾数部分由于第一位必须是1,因此,省略该部分后就节省了一个数据位。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值