二元OR运算符

Roh*_*esh 0 java bitwise-operators operator-keyword

你好我有两个号码

int a= 6;
int b = 20;
Run Code Online (Sandbox Code Playgroud)

当我在做orie |操作时,它没有给出正确的结果.

int result = a | b ;
Run Code Online (Sandbox Code Playgroud)

result = 22但正确的答案是26.

Era*_*ran 5

22是正确的:

6     is  0..000110
20    is  0..010100
6|20  is  0..010110 which is 22
Run Code Online (Sandbox Code Playgroud)

如果你使用十六进制数进行操作并将结果转换为十六进制,你将得到26(用十六进制):

int a= 0x6; int b = 0x20;
int result = a | b ;
System.out.println (Integer.toString (result,16));
Run Code Online (Sandbox Code Playgroud)

  • @Rohitesh:当你声明`INT B = 20;`在Java中,编译器会`20`在基座10,而不是底座16. (3认同)