原码[1]、反码和补码的概念
1)概念
________________
________:是最简单的机器数表示法[2]。其数符位用0表示正,1表示负,其余各位表示真值本身。
即用第一位表示符号, 其余位表示值,比如如果是8位二进制[3]:
1的原码是________,
—1的原码是________。
________:正数的反码同原码,负数的反码为除符号位外,其它各位按位取反。
正数的反码是其本身,负数的反码是在其原码的基础上,符号位不变,其余各个位取反
1的反码是________,
—1的反码是________。
________:正数的补码同原码,负数的补码为反码加1。
负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1
1的补码是________,
—1的补码是________。
2)转换方法
当真值为正数时,原码、反码、补码3种机器数的最高位均为0
当真值为负数时,原码、反码、补码3种机器数的最高位均为1
机器数的最高位为符号位,其它位称为数值位。
当真值为正数时,原码=反码=补码;
当真值为负数时,三种机器数的符号位相同,均为________,原码的数值位保持“原”样,反码的数值位是原码数值位的“________”,补码的数值位是原码的数值位的“按位取反”后再加________,简称“________________”。
当真值为负数时:补码=反码+1
当真值为负数时:原码= [补码]取补补码= [原码]取补
[-x]补=模-[x]补
[x]补=模-[-x]补比如8bit,模=28=1_0000_0000
例如:(1)假设码长为8位,写出下列数的原码、反码和补码。
根据本题可得到结论:0的原码、反码各有两种表示方法,而补码是唯一的全0表示。
(2)假设码长为8位,写出原码、反码和补码所能表示定点整数和定点小数的范围。
由此可见:n位的二进制数用原码表示,则可表示的数的个数为________________________个;n位的二进制数用反码表示,则可表示的数的个数为________________________________个;n位的二进制数用补码表示,则可表示的数的个数为________________个。
比如:补码中用(-128)代替了(-0)
编程中常用到的32位int类型,可以表示范围是: [-231~231-1] 因为第一位表示的是符号位.而使用补码表示时又可以多保存一个最小值-2G~2G-1
下列关于二进制[1]原码[2],反码和补码的说法,错误的是()。(A)原码的最高位表示符号,0表示正数,1表示负数(B)补码的最高位表示符号,0表示正数,1表示
【单选题】若用 8 位 0 , 1 表示一个二进制数,其中 1 位即最高位为符号位,其余 7 位为数值位。 十进制数(+14)的原码、反码和补码表示,正确的是
[判断题] 负数求补码的规则简单说是:符号位用1表示,其余各位一律求反,末位加1。A . 正确B . 错误
[单选题]用n+1位字长(含一位符号位)表示原码定点整数时,所能表示的数值范围是(1);用n+1位字长(含一位符号位)表示原码定点小数时,所能表示的数值范围是(2)。A.0≤|N|≤2n-1-1B.0≤|N|≤2n-1C.0≤|N|≤2n+1-1D.0≤|N|≤2n+2-1
[单选题]若用8位机器码表示十进制整数-127,则其原码表示为(12),补码表示为(13)。(12)A.10000000B.11111111C.10111111D.11111110(13)A.10000001B.11111111C.10111110D.11111110
某机字长16位,采用补码定点整数表示,符号位为1位,数值位为15位,则可表示的最小负整数为( )A. $-(2^{15}-1)$B. $-2^{15}$C. $
[单选题]若用8位机器码表示二进制数-111,则原码表示的十六进制形式为(1);补码表示的十六进制形式(2)。空白(2)处应选择()A . F9B . F0C . 89D . 80
[单选题]某机字长32位,其中1位符号位,31位表示尾数。若用定点小数表示,则最大正小数为()。A.B.C.D.
[单选题]某机字长32位,其中1位符号位,31位表示尾数。若用定点小数表示,则最大正小数为()。A.B.C.D.
[单选题]某机字长32位,其中1位符号位,31位表示尾数。若用定点小数表示,则最大正小数为()。A.B.C.D.