计算机中如何表示数字-04反码

来源:互联网 发布:python参考手册 编辑:程序博客网 时间:2024/05/29 18:36
反码的实质是一种特殊的补码,其特殊之处在于反码的模比补码的模小一个最低位上的1。


反码的定义:


ü 纯小数:0<=x<1时,x的反码是其自身;-1<x<=0时,x的反码为(2-2^(1-n))+x。模为2-2^(1-n)。


ü 纯整数:0<=x<2^(n-1),x的反码是其自身;-2^(n-1)<x<=0时,x的反码为(2^n-1)+x。模为2^n-1。
根据反码的定义可得反码的求法:若x>=0,则使符号位为0,数值部分与x相同,即可得到x反;若x<=0,则使得符号位为1,x的数值部分各位取反,即可得到x反。


例4-1:已知x原码、x补码,求x反码。


ü x原码=0.0101001   x原码>0,由定义反码为其自身,x反码=0.0101001


ü x原码=11011010   x<0,由定义除符号位外各位取反,x反码=10100101


ü x补码=0.0101001   x>0,反码和补码都等于原码,它们是相等的,x反码=0.0101001


ü x补码=11011010   x<0,反码的模比补码小一个最低位上的1,因此,反码要比补码小一个最低位上的1,x反码=11011001


例4-2:反码中零的表示方法有两种。


纯小数+0和-0的反码表示:[+0]反码=0.000…0   (n个0)


[-0]反码=(2-2^(1-n))-0.000…0=1.111…1  (n个1)


纯整数+0和-0的反码表示:[+0]反码=0000…0   (n个0)


                     [-0]反码=(2^n-1)-0000…0=1111…1 (n个1)


例4-3:反码表示的范围。


反码的表示范围与原码的表示范围相同,比补码少表示一个数,因为反码的模比补码少了一个最低位的1,自然也就要少表示一个数。纯小数的反码不能表示-1,纯整数的反码不能表示-2^(n-1)。
0 0
原创粉丝点击