先把 8192 变换成二进制数,就是:10 0000 0000 0000。
在此基础上,就可以写出-8192 的补码。
只要 “取反加一” 就行了。
取反,就是:01 1111 1111 1111;
加一,就是:10 0000 0000 0000。
这就是-8192 的补码。
由此可知,至少需要 14 位二进制代码。
-------------------
通过补码,可不可以 “求反加一”,求得-8192 的原码呢?
要知道,在原码和反码中,都有两个零的编码:+0、-0。
而在补码中,只有一个零。
因此,原码和反码,就比补码,少表示一个数字。
巧了,14 位的原码和反码,它们就都少表示-8192 这个数字。
那么,X =-8192,就只能用补码表示,不能用原码和反码表示。
而 X = +8192,就只能写成一般的二进制数:10 0000 0000 0000,
也不能用 14 位的原码反码补码来表示。
-------------------
按照补码的定义式:
[ X ]补 = X, 0 <= X < 2^(n-1);
[ X ]补 = X + 2^n, -2^(n-1) <= X < 0。
那么,补码的范围,则是:-2^(n-1) ~ +2^(n-1)-1。
其中的 n 是补码的位数。
当 n = 14 时,范围则是:-8192 ~ +8191。
那么,n = 14,就是表示-8192 所用的最少位数。
本文完