此问题已在此处有答案:
Java: right shift on negative number(3个答案)
2天前关闭。
System.out.print((-15)&(-1 >> 1));
为什么上面的代码返回-15?
是否应该将MSB设置为0,因为位掩码为(-1 >> 1),即0111111
我期待一个正整数,但它返回-15。逻辑不清楚。好心帮忙
此问题已在此处有答案:
Java: right shift on negative number(3个答案)
2天前关闭。
System.out.print((-15)&(-1 >> 1));
为什么上面的代码返回-15?
是否应该将MSB设置为0,因为位掩码为(-1 >> 1),即0111111
我期待一个正整数,但它返回-15。逻辑不清楚。好心帮忙
1条答案
按热度按时间yftpprvb1#
根据java docs:
无符号右移运算符“>>>”将零移到最左边的位置,而“>>”之后的最左边位置取决于符号扩展。
所以你要留着这个牌子你可能需要一个