- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我正在阅读一些代码示例,并在 Oracle 网站的 Bitwise and Bit Shift Operators 页面上看到了 &
。在我看来,它在解释按位 &
方面做得不太好。我知道它直接对位进行操作,但我只是不确定是什么样的操作,我想知道那个操作是什么。这是我从 Oracle 网站下载的示例程序:http://docs.oracle.com/javase/tutorial/displayCode.html?code=http://docs.oracle.com/javase/tutorial/java/nutsandbolts/examples/BitDemo.java
最佳答案
整数表示为内存中的位序列。为了与人类交互,计算机必须将其显示为十进制数字,但所有计算都以二进制形式进行。 123
十进制存储为1111011
在内存中。
&
运算符是按位“与”。结果是两个数字都打开的位。 1001 & 1100 = 1000
,因为两者都只打开第一位。
|
运算符是按位“或”。结果是任一数字中打开的位。 1001 | 1100 = 1101
, 因为只有右数第二位在两者中都是零。
还有^
和 ~
运算符,分别是按位“Xor”和按位“Not”。最后还有<<
, >>
和 >>>
移位运算符。
在引擎盖下,123
存储为 01111011 00000000 00000000 00000000
或 00000000 00000000 00000000 01111011
取决于系统。使用按位运算符,使用哪种表示并不重要,因为两种表示都被视为逻辑数 00000000000000000000000001111011
.去除前导零叶 1111011
.
关于java - Java 中的位 & (AND) 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17256644/
我是一名优秀的程序员,十分优秀!