1、真值
用“+”、“-” 表示正负的二进制数
2、机器码(机器内部使用)
将符号和数值一起编码表示的二进制数称为机器码;可见其分为原码、反码、补码、移码。
3、原码表示法
最高位为符号位,0:正,1:负,数值位不变。
注意:整数“0”的原码同样有正负之分,+00…0和-00…0的原码分别表示为00…0和10…0。
原码特点:
(1)、表示简单,仅对符号做初始化,正数的原码符号位为0数值位不变,负数的原码符号位为1数值位不变。
(2)、运算复杂:符号位不参加运算,要设置加法、减法器(比如X原+Y原,不能直接判断是执行加法还是减 法运算,分同号和异号,同号执行加法,异号执行减法)
(3)0的表示不唯一,当运算结果为0,由于面临正0和负0的选择,这个时候的运算过程不能自动化,需要用户的干预,你是要选择正0还是负0.
4、反码表示法
符号位与原码相同 真值为正数时,反码与原码相同;
真值为负数时,反码数值位为真值数值位取反。
注意:整数“0”的反码也有两种形式,即00…0和11…1。
反码特点:
运算相对原码简单:符号位参加运算,只需要设置加法器,但符号位的进位位需要加到最低位。
例如:
5、补码表示法
正值直接取其原来的二进制码,符号位为0
负值则逐位取反,末位加1,符号位为1
补码特点:
(1)唯一的机器零
小数0的唯一表示:0.0000 整数0的唯一表示:00000
(2)符号位可以直接参与运算 减法可以变成加法,运算电路统一 负数比正数多一个
(3)注意:在表示数据的时候,补码比原码少一个-0,由于表示数据所用的位数是一样的,也就是能表示的数的个数不会变,所以补码会比原码和反码多表示一个数,整数是 -128,小数是 -1.0
6、移码表示法
数值位与补码相同,符号位与补码相反
例如:
移码特点:
(1)仅用于表示整数,通常表示浮点数的阶码
(2)保持数据原有大小顺序,便于直接进行比较,偏移量也可是非幂次方常量