要想运算<<、>>、<<<、>>>这些符号 首先必须了解: ①十进制数和二进制数相互转换。 ②原码、反码和补码。
正数:比如运算’16<<2’的结果 首先 你要将16转换为二进制数
16的二进制原码为0001 0000 16的二进制反码为0001 0000 16的二进制补码为0001 000016<<2就是将16的二进制补码左移两位,低位补0,那么得到:
左移两位后的补码为0100 0000将得到的补码转换为十进制,那么16<<2的结果为64 负数:比如运算’-16<<2’的结果,首先 你要将-16转换为二进制数
-16的二进制原码为1001 0000 -16的二进制反码为1110 1111 -16的二进制补码为1111 0000-16<<2就是将16的二进制补码左移两位,低位补0,那么得到:
左移两位后的补码为1100 0000 左移两位后的反码为1011 1111 左移两位后的原码为1100 0000将得到的原码转换为十进制,那么-16<<2的结果为-64
正数:比如运算’16>>2’的结果,首先 你要将16转换为二进制数
16的二进制原码为0001 0000 16的二进制反码为0001 0000 16的二进制补码为0001 000016>>2就是将16的二进制补码右移两位,高位补0,那么得到:
右移两位后的补码为0000 0100将得到的补码转换为十进制,那么16>>2的结果为4 负数:比如运算’-16>>2’的结果,首先 你要将-16转换为二进制数
-16的二进制原码为1001 0000 -16的二进制反码为1110 1111 -16的二进制补码为1111 0000-16>>2就是将16的二进制补码右移两位,高位补1,那么得到:
右移两位后的补码为1111 1100 右移两位后的反码为1111 1011 右移两位后的原码为1000 0100将得到的原码转换为十进制,那么-16>>2的结果为-4 **
** 正数:比如运算’16>>>2’,它的运算过程同等于’16>>2’, 方法参考上面’16>>2’的正数运算。 负数:比如运算’-16>>>2’的结果,首先 你要将-16转换为二进制数(32位)
-16的二进制原码为10000000 00000000 00000000 00010000 -16的二进制反码为11111111 11111111 11111111 11101111 -16的二进制补码为11111111 11111111 11111111 11110000-16>>>2就是将16的二进制补码右移两位,高位补0,那么得到:
右移两位后的补码为00111111 11111111 11111111 11111100转换为十进制,那么-16>>>2的结果为1073741820