int i=~12?
int i=~12;
个人认为应该是一个负的相当大的数,但程序运行结果为-13,求指教!
[解决办法]
12的二进制是
0000 0000 0000 0000 0000 0000 0000 1100(原码补码相同)
~12的二进制是
1111 1111 1111 1111 1111 1111 1111 0011(原码)
转换为补码之后就是
1000 0000 0000 0000 0000 0000 0000 1101
即-13
[解决办法]
只要知道计算机是用补码的方式存储的。