Java中的位级操作

Add*_*dev 6 java bit

我正在尝试在Java中进行一些操作来应用掩码,表示集等.为什么:

int one=1;
int two=2;
int andop=1&2;
System.out.println(andop);
Run Code Online (Sandbox Code Playgroud)

如果应为"3"则打印"0":

0...001
0...010
_______
0...011
Run Code Online (Sandbox Code Playgroud)

我怎么能得到这种行为?

提前致谢

tro*_*foe 11

使用二进制'或'运算符:

int andop = 1 | 2;
Run Code Online (Sandbox Code Playgroud)

二进制'和'运算符将保留两边的位集; 在的情况下,12这是没有位可言.


Kon*_*uda 10

你按位OR和按位AND混合


Jon*_*eet 5

你正在寻找一个按位"OR",而不是"AND":

int both = one | two;
Run Code Online (Sandbox Code Playgroud)

"或"表示:" 如果输入x*为1,则*n应为1,或者输入y为1,则为1 "

"AND"说:" 如果输入x*为1,则*n应为1,输入y为1,则为1 "