繁体   English   中英

按位运算符的负操作数如何在Java中工作?

[英]How do negative operands to bitwise operators work in Java?

-4 & -5 = -8 // How?
-4 & 5 = 4 // How?

我需要解释如何达到上述结果。 我用正整数求解没有困难。

只需将整数转换为二进制表示(对于负整数,使用二进制补码 )并按位运行AND:

-4 11111..1100 &
-5 11111..1011

-8 11111..1000


-4 11111..1100 &
 5 00000..0101

 4 00000..0100

让我们看看数字是如何表示的:

positive four    0100          
negative four    1100
positive five    0101          
negative five    1011
negative eight   1000

如果你试图做and操作手册,你会得到这样的结果:

1100 (-4) & 1011 (-5) = 1000 (-8)
1100 (-4) & 0101 (5) = 0100 (4)

在这里,您可以阅读更多相关信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM