<<:左移时不管正负,低位补0
正数:a=20<<2,20的二进制补码:0001 0100 。向左移动两位后:0101 0000 结果:a=80
负数:a=-20<<2,-20的二进制原码码:1001 0100。-20的二进制反码:1110 1011。反码+1即可得-20的二进制补码:1110 1100 ,左移两位后的补码:1011 0000,反码:1010 1111,原码:1101 0000,结果:a=-80
>>:右移时,如果该数为正,则高位补0,若为负数,则高位补1:
正数:a=20>>2,20的二进制补码:0001 0100,向右移动两位后:00000101,结果:a=5
负数:a=-20>>2,-20的二进制原码:1001 0100,-20的二进制反码:1110 1011,-20的二进制补码:1110 1100,右移两位后的补码:1111 1011,反码:1111 1010,原码:1000 0101,结果:a=-5
补充:加、减、乘、除运算都可以转换为加法和移码运算.
网友评论