原码反码补码移码
0所对应的原码反码补码移码?
0所对应的原码反码补码移码?
原码:符号位为0表示正数,为1表示负数,数值部分用二进制数的绝对值表示的方法称为原码表示法,通常用[X]原表示X的原码。
反码:正数的反码与原码相同,负数的反码是符号位不变,数值位逐位取反。
补码:正数的补码与其原码相同;负数的补码是符号位不变,数值位逐位取反(即求其反码),然后在最低位加1。
移码也称为增码或偏码,常用于表示浮点数中的阶码。移码可由补码求得,只要把补码的符号位取反就得到了移码。
原码:小数:x= 0.0000 [x]原=0.0000
x=-0.0000 [x]原=1.0000
整数:x= 0 [x]原=0,0000
X=-0 [x]原=1,0000
反码:x= 0 [x]反=0,0000
X=-0 [x]反=1,1111
x= 0.0000 [x]反=0.0000
x=-0.0000 [x]反=1.1111
补码:x= 0 [x]补=0,0000
X=-0 [x]补=0,0000
x= 0.0000 [x]补=0.0000
x=-0.0000 [x]补=0.0000
移码:x= 0 [x]移=1,0000
X=-0 [x]移=1,0000
x= 0.0000 [x]移=1.0000
x=-0.0000 [x]移=1.0000
-17的原码反码补码移码?
原码10010001,反码11101110,补码
11101111。
x = -17d = -10001b
若字长8位:
[x]原 =1001 0001b
[x]反 =1110 1110b
[x]补 =1110 1111b用八位二进制表示,最高位表示符号位,1为负,0为正。补码为其绝对值的原码取反加1,17原码为00010001,取反加1为11101110+1=11101111
原码与补码的转换:
1、首先要知道转换规则:将原代码转换为逆代码:符号位不变,数字位分别“按位倒转”。
2、反向代码转换也是如此,但规则不同:符号位保持不变,数字位“按位倒转”。
3、然后,原码转换为补码的规则:保持符号位不变,数字位逐位反转,最后一位加1。
4、将最后的补码转换为原码:保持符号位不变,数字位按位反向,最后一位加1,即补码的补码等于原码。
5、补码(变量补码)的转换规则与之前不同,将符号位和数字位颠倒,最后一位加1。