我正在看我的讲义,并且看到了:
为什么int的MSB是第31位而不是第32位?如果一个int有4个字节,则有32位,最左边的位是第32位,对吗?
笔记说
最左边的位表示整数的符号...如果MSB为1,则整数为负。请注意,无论整数类型的大小如何,MSB都是符号。例如,对于一个int,它是位31。对于一个长整数,它是位63。对于字节,它是位7。正数的两个负数补码,首先将所有位取反,将0s更改为1s,将1s更改为0s,然后加1。
对吗?
我也不明白为什么将所有位取反并加一个给我负数。有人可以更好地解释吗?