计算机中数的表示(讲稿).ppt_第1页
计算机中数的表示(讲稿).ppt_第2页
计算机中数的表示(讲稿).ppt_第3页
计算机中数的表示(讲稿).ppt_第4页
计算机中数的表示(讲稿).ppt_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机中数的表示,知识回顾,1、计算机中的数是用 二进制 表示的。 2、二进制数的运算 (1)算术运算 (2)逻辑运算 NOT AND OR XOR (3)移位运算 左移 右移,无符号整数的表示,无符号的整数,就是从0到无穷大的自然数。表示这种数时不需要考虑符号,只需要将它转化成二进制,然后存放在计算机中即可。计算机保存的无符号数的范围是有限的。根据数制的定义公式,一个 n 位无符号二进制数的最大值是:2n -1,带符号整数的表示,计算机中参与计算的数,显然是有正有负的。带符号的二进制整数存在多种表示方法,下面介绍一下二进制数的: 1、原码 2、反码 3、补码,原码,如果用二进制数的最高位表示其符号,用剩下的位表示其绝对值,这样得到的二进制数的表示就是原码。原码表示中,正数的最高位为0,负数的最高位为1。例如: 整数 (+105)10,其8位二进制原码为:0 1101001; 整数 (-105)10,其8位二进制原码为:1 1101001。 上面的表示中,二进制数01101001和11101001,称为机器数,而其实际所代表的值+105和-105,称为该机器数的真值。,原码表示的优点是简单易懂,与真值的换算方便。但用原码计算时,如果两个异号数相加或者同号数相减,就需要用到减法。在计算机设计中,要尽量将运算用加法和移位完成。因此,计算机中实际上没有用原码形式存储带符号的整数。但由于其简单与直观,在不涉及数字运算的应用场合还是会用到的。,原码的特点,反码,正数的反码与原码相同。即最高位是符号位,用0表示正,其余位表示该数的值。例如: (+127)10的8位二进制反码:01111111; (+31)10的8位二进制反码:00011111。 负数的反码通过将其正数的反码按位取反(包括符号位)得到。例如: (-127)10的8位二进制反码:10000000; (-31)10的8位二进制反码:11100000。 显然,在反码表示中,0有两种表示方法,在这里,我们暂且称之为+0和-0: +0的8位二进制反码: 00000000; -0的8位二进制反码: 11111111。,反码的特点,(1)0 有两种表示方法; (2)n 位二进制反码所能表示数的范围是 -2 n-1-1+2n-1-1。如 8 位二进制反码所能表示数的范围是-127+127; (3)当反码的符号位是0(即正数)时,后面的位数为数值部分;当符号位为1(即负数时),将后面的位数按位取反后才得到其数值。 由于反码中 0 有两种表示,会引起很大的混乱,另外,进行加减法也不方便。所以计算机中没有使用反码存储带符号的整数。反码的意义在于它是下面要介绍的补码的基础。另外,它的某些特性使其可用于诸如错位检测和纠错的数据通信应用程序中。,补码,带符号数的 n 位二进制补码按如下的步骤得到: (1)首先将数的绝对值转换为二进制数,不管符号; (2)如果得到的二进制位数不足 n 位,在高位补0,直到总位数为 n ; (3)如果符号为正,就不需要作变动。如果符号为负,则从最低位开始到首次出现的1为止,将所有的0和首次出现的1保持不变,其余位取反。,例题,例1:求(+31)10和( -31)10的 8 位二进制补码。 解:31所对应的二进制数为11111。 ( +31)10的8位二进制补码只需在高位补3个0,即00011111。而( -31)10的补码需要保持00011111最低位的1不变,其他位取反。即11100001。 例2:求( +126)10和( -126)10的8位二进制补码。 解: ( 126)10所对应的二进制数为1111110。( +126)10的8位二进制补码只需在高位补1个0,即01111110。而 ( -126)10的补码需要保持01111110最低位的0和第一个1不变,其他位取反。即10000010。,0的补码,特别的有: +0的补码:00000000; -0的补码:00000000。 这样,在补码表示中,0只有一种表示法,克服了在反码中0有两种表示的缺点。,求补码的十进制真值,求一个补码的十进制真值的方法是: (1)如果最高位是0,则直接将此二进制数转换为十进制数,并在前面加上正号; (2)如果最高位是1,则将最低位连续的0和第一个出现的1保持不变,将其余位(包括符号位)按位取反,然后将得到的二进制数转换为十进制数,并在前面加负号。,例题,例:计算8位二进制补码10000000的真值。 解:由于最高位为1,所以该数是负数。将该二进制数最低位连续的0和第一个出现的1保持不变。这样得到的二进制数还是10000000。将此数转换成十进制数为128,然后在前面加负号,得到(-128)10。所以,8位二进制补码10000000的真值是-128。 从该例子看出,8位二进制补码所表示的数的范围是 -128+127。一般地,我们可以给出,一个 n 位二进制补码所能表示的数的范围是-2n-1+(2n-1-1)。,补码运算,以上面列举的补码表示的数为例,我们考查用补码进行加法运算的情况。首先我们看31-127 = 31+(-127)。算式为: 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 结果10100000也是一个补码表示,其符号为负,绝对值是保持最低位连续的0和第一个1不变,将其余位按位取反,最后得到01100000 =(96)10。所以结果为-96,与实际相符。,补码的特点,总结上述内容,补码有以下特点: (1)0只有一种表示,即所有位全为0; (2)n位二进制补码表示数的范围为-2n-1+(2n-1-1) ; (3)通过用补码表示带符号的数,可以用加法运算实现减法,有助于简化计算机的设计。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论