-3 = 3 的二进制取反 + 1
0000 0000 0000 0000 0000 0000 0000 0011 =3
1111 1111 1111 1111 1111 1111 1111 1100 取反
0000 0000 0000 0000 0000 0000 0000 0001 +1
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1111 1111 1111 1111 1111 1111 1111 1101 = -3
-3<<2的结果:
1111 1111 1111 1111 1111 1111 1111 0100 是一个负数
转换成十进制 一样取反+1
0000 0000 0000 0000 0000 0000 0000 1011 取反
0000 0000 0000 0000 0000 0000 0000 0001 +1
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
0000 0000 0000 0000 0000 0000 0000 1100 = -12(!!!!)
|