行业新闻
正数的反码和补码与原码相同(机器数 真值 原码 反码 补码)
2023-04-21 08:06

一. 机器数与真值

1、机器数:一个数在计算机中的二进制表示形式。

二进制表示数值的符号只有0和1两个数码,在计算机中数值的正负符号也用数字表示,我们把最高位作为符号位,用0表是正数符号,用1表示负数符号,这样,机器中的数值和符号就全部“数字化”了。

机器数有2个特点:一是符号数字化,二是数的大小受机器字长的限制。

比如:计算机字长为8位,那么十进制数+4 ,机器数表示就是 00000100。十进制数-4 ,机器数表示就是10000100 。

2、真值:带符号位的机器数对应的真正数值(十进制的数)称为真值。

机器数的最高位是符号位,我们将带符号位的机器数对应的真正数值称为机器数的真值。

比如:机器数00000100的真值 = +000 0100 = +4,机器数1000 0100的真值 = –000 0100 = –4

二、原码、反码与补码

原码、反码与补码是机器数的编码方法,被称为码制。

  • 1、原码表示法:符号位+真值的绝对值。

原码是最简单的机器数表示法。最高位是符号位,0表示正号,1表示负号,其余的n-1位表示数值的绝对值;

比如:

[+3] = [00000011] (原码)

[-3] = [10000011] (原码)

  • 2、反码的表示法:正数的反码是其本身,负数的反码是在其原码的基础上, 符号位不变,其余各个位取反。

比如:

[+3] = [00000011](原码)= [00000011](反码)

[-3] = [10000011](原码)= [11111100](反码)

  • 3、补码的表示法:正数的补码就是其本身,负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1。 (即在反码的基础上+1)

比如:

[+3] = [00000011](原码)= [00000011](反码)= [00000011](补码)

[-3] = [10000011](原码)= [11111100](反码)= [11111101](补码)

三、原码、反码与补码转换

1、正数部分:

正整数的原码、反码和补码是一样的,只要到符号位(第一位)是0,就可以照着写出其他两种码。

比如:[+2] = [00000010](原码) = [00000010](反码) = [00000010](补码)

2、负数部分:

1) 原码转换为反码:符号位不变,数值位分别“按位取反”

2) 反码转换为原码也是一样:符号位不变,数值位分别“按位取反”

3) 原码转换为补码:符号位不变,数值位按位取反,末位再加1

4) 补码转换为原码:符号位不变,数值位按位取反,末位再加1

即补码的补码等于原码。

例1:[x](补码)=10011000,其原码为( )。

A.011001111 B.11101000 C.11100110 D.01100101

答案:B

例2:十进制数-103的补码是( )。

A.10011001 B.11100111 C.10110011 D.00011001

答案:A

发表评论
0评