黑马程序员技术交流社区

标题: 计算机中定点数的表示 [打印本页]

作者: 星痕-凌    时间: 2015-7-5 18:01
标题: 计算机中定点数的表示
[color=Red][b]定点数的表示
 一个定点数,在计算机中可用不同的码制来表示,常用的码制有原码、反码和补码三种。不论用什么码制来表示,数据本身的值并不发生变化,数据本身所代表的值叫做真值。下面,我们就来讨论这三种码制的表示方法。
    1. 原码
    原码的表示方法为:如果真值是正数,则最高位为0,其它位保持不变;如果真值是负数,则最高位为1,其它位保持不变。
   【例1】写出13和 –13的原码(取8位码长)
    解:因为13=(1101)2,所以13的原码是00001101,-13的原码是10001101。
    采用原码,优点是转换非常简单,只要根据正负号将最高位置0或1即可。但原码表示在进行加减运算时很不方便,符号位不能参与运算,并且0的原码有两种表示方法:+0的原码是00000000,-0的原码是10000000。
    2. 反码
    反码的表示方法为:如果真值是正数,则最高位为0,其它位保持不变;如果真值是负数,则最高位为1,其它位按位求反。
    【例2】写出13和 –13的反码(取8位码长)
    解:因为13=(1101)2,所以 13的反码是00001101,-13的反码是11110010。
    反码跟原码相比较,符号位虽然可以作为数值参与运算,但计算完后,仍需要根据符号位进行调整。另外0的反码同样也有两种表示方法:+0的反码是00000000,-0的反码是11111111。
    为了克服原码和反码的上述缺点,人们又引进了补码表示法。补码的作用在于能把减法运算化成加法运算,现代计算机中一般采用补码来表示定点数。
    3. 补码
   补码的表示方法为:若真值是正数,则最高位为0,其它位保持不变;若真值是负数,则最高位为1,其它位按位求反后再加1。
  【例3】写出13和 –13的补码(取8位码长)
    解:因为13=(1101)2,所以 13的补码是00001101,-13的补码是11110011。
   补码的符号可以作为数值参与运算,且计算完后,不需要根据符号位进行调整。另外,0的补码表示方法也是唯一的,即00000000。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2