原码:最高位是符号位,其余低位表示数值的绝对值。
反码:整数的反码与原码相同,负数的反码是其绝对值按位取反,符号位不变
补码:整数的补码与原码相同,负数的补码是其反码末位加1.
移码:补码的符号位取反。
数值1 | 数值-1 | 1-1 | |
---|---|---|---|
原码 | 0000 0001 | 1000 0001 | 1000 0010 |
反码 | 0000 0001 | 1111 1110 | 1111 1111 |
补码 | 0000 0001 | 1111 1111 | 0000 0000 |
移码 | 1000 0001 | 0111 1111 | 1000 000 |
原码:数码个数2^n -1
反码:数码个数2^n -1
补码:数码个数2^n
移码:数码个数2^n
eg:
采用n位补码(包含一个符号位),表示数据,可以直接表示的数值是?
A:2^N
B:-2^N
C:2^(N-1)
D:-2^(N-1)
答案:D
因为再补码里面有一个人为规定,100可以表示为-4,因为0只有一种表示方式是000,所以再补码里面100表示4。
eg:如果“2X”的补码是“90H”,那么X的真值是多少?
A:72
B: -56
C: 56
D: 111
90H ->1001 0000
补码-》反码
1001 0000 -》 1000 1111
反码 -》 原码
1000 1111 -》 1111 0000
原码-》真值
1111 0000 -》第一位是符号位 - 值为0111 0000
二进制转16进制
0111 0000 -》70H
16 -》10进制
70H-》112 = 2* 56
所以是B .-56