Hap*_*tal 0 integer twos-complement
如果在我的编译器上,int是16位,那么它的范围是-32768到32767(在2的补码机器中).
我想知道为什么负数有1个额外的没有.即正数转为32767但负数转为另一个ie-32768.
-32768如何用2的补码m/c表示?
在16位上,您可以将pow(2,16)(2到16的幂)组合成不同的组合来表示65536个数字.确定零看起来最好代表000 ... 000并且"二补"系统中的正数通常是可读的(它们等于所谓的"自然二进制"表示,如0000 0000 0000 0101 = 5十进制等) .
二进制补码中的负数以1111 1111 1111 1111开头,表示-1.把它想象成一个数字为997,998,999的计数器表盘,突然当它必须代表1000它溢出并显示000时.原理在这里是相同的,但方向是相反的 - 来自... 000到... 111.-2表示为1111 .... 1110,依此类推.
二进制补码中最低的数字前面有1个,其余数字为零.
| 归档时间: |
|
| 查看次数: |
197 次 |
| 最近记录: |