计算机加减法运算采用机器数,《深入理解计算机网络》习题集..docx

《深入理解计算机网络》习题集.

第一章补充内容1.4.5定点数与浮点数计算机在处理实数时遇到了一个表示方法的难题,因为在计算机内存,或者叫寄存器中是没有专门的小数点位的,而在实际运算过程中却往往又是包括小数点的小数。如果某种数据编码约定实数的小数点固定在某一个位上,则这个数称之为“定点数”(Fixed Point Number)。相反,如果某种编码约定实数的小数点位置是可变的,则这个数称之为“浮点数”(FloatingPoint Number)。但是要注意的是,在寄存器中小数点的位置是隐含的,没有专门的小数点位。定点数对于定点数来说,如有一种编码是用4位来表示实数的,并且约定小数点在中间位置,则可以得出这种编码所能表示的最大整数部分和小数部分均为99(假设用十进制表示)。显然定点数这样的约定限制了编码所能表示数的范围。根据小数点的位置的不同,定点数又分为“定点整数”和“定点小数”两种。如果小数点在有效数值部分最低位之后,这样的数称之为“定点整数”(纯整数),如1110101.(其实这里的小数点在寄存器中是没有标注的,是隐含的)。但要注意,计算机中的机器数都是带符号的,所以最高位都是符号位,不是实际的数值位。正因如此,这里的“1110101”所对应的数是-53,而不是+117。如果小数点位置在符号位之后、有效数值部分最高位之前小数点在最高有效数值位之前(这里的小数点在寄存器中也是隐含的,没有小数点专门的位),这样的数称之“定点小数”(纯小数),如0.1010101(注意整数部分仅一位,而且是符号位,对应。当然还可以既有整数部分,又有小数部分的定点数(当然,此时不能直接说它们是“定点整数”,也不能说它们是“定点小数”)。以人民币为例,我们日常经常看到的¥125.10,¥873.25之类的数就是一个定点数,约定小数点后面有两位小数,用来表示角与分。【经验之谈】这时可能就有读者问,没有标点符号位,那计算机怎么确定数值的大小?这就是前面说到的“约定”了。这里的“约定”是由计算机程序指定的,一种编码的二进位数是固定的,如果约定了小数点的位置,则这里面的数的小数点位置就确定了,计算机就可以确定不同数值的大小了。如某种编码用4个二进制位表示,且约定小数点位于最后一位前,最则可以确定诸如1101、0100、1001等这些数所对应的十进制值分别为-2.5、+2.0、-0.5(注意,最高位为符号位)。根据前面的介绍,我们可以很容易地得出定点整数的表示范围是:1≤?|?x?|?≤?2n??-??1,定点小数的表示范围是:2-?n??≤?|?x?|?≤?1 -??2-?n,“?|?x?|”为定点的绝对值,n是编码所采用的位数。对于定点数,如果机器字长为n,则各种码制所表示的带符号数的取值范围如表1-4所示。表1-4机器字长为n时表示的带符号数取值范围码制定点整数定点小数原码–(2 n–1–1)~+(2 n–1–1)–(1–2–( n–1))~+(1–2–( n–1))反码–(2 n–1–1)~+(2 n–1–1)–(1–2–(n–1))~+(1–2–( n–1))补码–2 n–1~+(2 n–1–1)–1~+(1–2–( n–1))移码–2 n–1~+(2 n–1–1)–1~+(1–2–( n–1))当数据小于定点数能表示的最小值时,计算机将它们作0处理,称为“下溢”;大于定点数能表示的最大值时,计算机将无法表示,称为“上溢”,上溢和下溢统称为“溢出”。浮点数从上面的分析可以看出,“定点数”表示方法的最大不足就是其形式过于僵硬,固定的小数点位置决定了固定位数的整数部分和小数部分,不利于同时表达特别大的数或者特别小的数。所以绝大多数现代的计算机系统采纳了一种称之为“浮点数”的表示方式。所谓“浮点数”就是在寄存器中数值的小数点位置是可变的。如是4位编码,小数点位置可以在符号位后的第一位,、第二位,或者第三位。这样可以表示的数值范围就大许多了。“浮点数”采用类似科学计数法(Scientific Notation)的方式来表达实数。比如 123.45 用十进制科学计数法可以表达为 1.2345 × 102,其中 1.2345 为尾数,10 为基数,2 为指数。具体的说,在计算机中通常把浮点数分成“符号位”(用S表示)、“指数”(用P表示)和“尾数”(用M表示)三部分来表示。其中符号位S只有0和1,分别表示正负;指数P通常使用移码表示(移码和补码只有符号位相反,其余都一样),尾数M是一个定点小数。IEEE754定义了单精度浮点数和双精度数浮点数,单精度浮点数共有32位(4字节),双精度浮点数共有64位(8字节)。它们所对应的包括符号位、指数位和尾数位如表1-5所示(前面的数字表示所对应的二进制位或二进制位范围,小括号中的数字表示所包括的二进制位数)。表1-5单精度浮点数和双

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值