n位二进制 整数 的补码、移码的数值范围、数值个数

需要掌握:

先说结论

补码范围

n位二进制数补码的数值范围:

-2^(n-1)    ~    2^(n-1) - 1

移码范围

补码的 符号位 取反,其他与补码相同

所以范围与补码范围相同:

-2^(n-1)    ~    2^(n-1) - 1

数值个数

2^n

多了一个人为指定的 二进制数 1000 000 表示 -128

8位二进制正数的值(补码)

  • 正数的补码:就是自己本身

8位二进制正数的补码如下(第一位是符号位):

0000 0000 表示0
0000 0001 表示1
0000 0010 表示2
0000 0011 表示3
....
0111 1111 表示127

正数最大值 127

所以正数的最大值是 127

正数最大值公式

最大值公式:2^(n-1) - 1

正数个数

128个数字

8位二进制负数的值(补码)

  • 负数的反码:在原码的基础上,按位取反,符号位不变

  • 负数的补码:在自身 反码 的基础上加 1

8位二进制负数的补码如下(第一位是符号位):

1111 1111 表示 -1
1111 1110 表示 -2
1111 1101 表示 -3
....
1000 0001 表示 -127

1000 0000 表示什么?(-128的来源)

通过上面的计算得知,不会有补码是 1000 0000

因此,这里就特别规定,这个二进制,定义为 -128,即:负数最大值

负数最大值 -128

所以负数最大值 -128

负数最大值公式

负数最大值公式:-2^(n-1)

负数个数

128个数字,因为有人为制定的 -128

数值个数

128 个正数 + 128 个负数 = 256 个数

公式

2^n

参考:
https://blog.csdn.net/qq_51216031/article/details/136319167