Java中的位运算符>>和>>>怎么算 a=-17; a>>输出是 -5 ;那a>>>输出是多少

如题所述

>>是将一个数转化成二进制去掉后面几位,>>>是不管符号位,将符号位也当做数字移位。
举例:
a=-17,二进制为
10000000000000000000000000010001,1是符号位,代表负数。>>2就是10001>>2位,100,也就是4,符号位为1,负数。>>>就是把1也看成数字,移位完就是100000000000000000000000000100,也就是536870916,符号位为0,正数。追问

>>运算的话 符号位不动吗

追答

是的

我刚才说错了,对不起。-17的2进制是11111111111111111111111111101111,-5是11111111111111111111111111111011,-17移两位也就是
在最前面补2个1(因为它是负数,正数就补0),最后面去掉2位,也就是-5。

追问

谢谢

顺便问一下 >>>是带符号位计算吗

我不明白-17>>>怎么算得1073741820这个数

温馨提示:答案为网友推荐,仅供参考
相似回答