首先,我复制了你的代码,其运算结果是9,那么显然不是-3+11的结果
然后:
&这个运算符是按位与,既然是按位与运算,那么就是2进制运算。
你用int定义的整数,其实在内存中是个32位的2进制数,比如-3,在内存中就是:
11111111 11111111 11111111 11111101 负数2进制为 其整数2进制按位取反加1。
而00000000 00000000 00000000 00001011 是正数8在内存中的样子。那么用了&运算后即
00000000 00000000 00000000 00001001 这个数 其实就是正数9,这就是运算过程。
按位与: 1和0与就是0,1和1与就是1,0和0与也是0。每一位对应运算! |