按位操作111和011在java中给出输出 9 。 怎么样? 111和011应为011,即3。
答案 0 :(得分:7)
您将数字指定为十进制和八进制,而不是您假设的二进制数。
number | decimal value | binary
--------- -----------------------
(decimal) 111 | 111 | 1101111
(octal) 011 | 9 | 0001001
这样:
1101111
& 1001
-------
0001001
和1001 = 2^3 + 1 = 9
使用Integer.toBinaryString
public static void main (String[] args) {
System.out.println(
Integer.toBinaryString(111));
System.out.println(
Integer.toBinaryString(011));
System.out.println(111 & 011);
}
上的代码
答案 1 :(得分:1)
补充yaitloutou的answer:整数文字可以用Java的不同基础表示:
0
,只是数字零(基数没关系,但指定为十进制)20
0x
后跟一个或多个十六进制数字,例如0x14
0
后跟一个或多个八进制数字,例如024
0b
后跟零和一,例如0b10100
下划线_
可用于分隔数字,但会被忽略,例如0b0001_0100
有关详细信息,请参阅Java Language Specification 3.10.1。