前言: 规定将一个二进制数的最高位作为符号位,用0表示正,用1表示负。
机器数:在机器内部存放的正负号数码后的数。
真值:在机器外部存放的由正负号表示的数。
一、原码
表示方法: 符号位——用0表示正,用1表示负。
特点:数值部分与该二进制真值的数值部分相同。
注意:
(1)0的原码有两种形式,
+0的原码为00000000B;-0的原码为10000000B。
(2)长度为一个字节的原码,其取值范围是-127(11111111)~127(01111111)。
【例1】
+5的原码为00000101B。
【例2】
-6的原码为10000110B。
二、反码
表示方法: 正数的反码,与原码相同;
负数的反码,符号位为1,数值位为原码的数值位按位取反。
注意:
(1)0的反码有两种形式,
+0的反码为00000000B;-0的反码为11111111B。
(2)长度为一个字节的反码,其取值范围是-127(11111111)~127(01111111)。
【例1】
+5的反码为00000101B。
【例2】
-6的反码为11111001B。
三、补码
表示方法: 正数的补码,与原码相同;
负数的补码,为反码的末位加1。
注意:
(1)0的补码只有一种形式,
+0的补码为00000000B;-0的补码为00000000B。
(2)长度为一个字节的补码,其取值范围是-128~127。
==八位二进制数一共有256种编码,用128个表示负数,一半表示零和正数。
--128个负数,-128~-1;128个零和正数,0~127。
【例1】
+5的补码为00000101B。
【例2】
-6的补码为11111010B。
特点:两个数的补码之和等于和的补码,
求和时符号位直接参加运算。
【例3】
[5]补 + [-6]补 = 00000101B + 11111010B = 11111111B = [-1]补
【例4】已知某数X的补码为11101110B,试求其真值。
解析: 负数的原码应为补码最低位减一后取反,但对二进制来说,先减1再取反和先取反再加1得到的结果是一样的,故可采用取反加1的方法。
解:由[X]补=11101110B可知,X为负数,故可采用取反加1的方法求其原码。
补码:11101110
取反(符号位不变,数值位取反): 10010001
原码(末位加1):10010010
真值:-0010010,即-18
机器数:在机器内部存放的正负号数码后的数。
真值:在机器外部存放的由正负号表示的数。
一、原码
表示方法: 符号位——用0表示正,用1表示负。
特点:数值部分与该二进制真值的数值部分相同。
注意:
(1)0的原码有两种形式,
+0的原码为00000000B;-0的原码为10000000B。
(2)长度为一个字节的原码,其取值范围是-127(11111111)~127(01111111)。
【例1】
+5的原码为00000101B。
【例2】
-6的原码为10000110B。
二、反码
表示方法: 正数的反码,与原码相同;
负数的反码,符号位为1,数值位为原码的数值位按位取反。
注意:
(1)0的反码有两种形式,
+0的反码为00000000B;-0的反码为11111111B。
(2)长度为一个字节的反码,其取值范围是-127(11111111)~127(01111111)。
【例1】
+5的反码为00000101B。
【例2】
-6的反码为11111001B。
三、补码
表示方法: 正数的补码,与原码相同;
负数的补码,为反码的末位加1。
注意:
(1)0的补码只有一种形式,
+0的补码为00000000B;-0的补码为00000000B。
(2)长度为一个字节的补码,其取值范围是-128~127。
==八位二进制数一共有256种编码,用128个表示负数,一半表示零和正数。
--128个负数,-128~-1;128个零和正数,0~127。
【例1】
+5的补码为00000101B。
【例2】
-6的补码为11111010B。
特点:两个数的补码之和等于和的补码,
求和时符号位直接参加运算。
【例3】
[5]补 + [-6]补 = 00000101B + 11111010B = 11111111B = [-1]补
【例4】已知某数X的补码为11101110B,试求其真值。
解析: 负数的原码应为补码最低位减一后取反,但对二进制来说,先减1再取反和先取反再加1得到的结果是一样的,故可采用取反加1的方法。
解:由[X]补=11101110B可知,X为负数,故可采用取反加1的方法求其原码。
补码:11101110
取反(符号位不变,数值位取反): 10010001
原码(末位加1):10010010
真值:-0010010,即-18