我有三个字符说a,b,c。这是a,b,c
的二进制表示a 001
b 010
c 100
我想要的是当有人提供输入为011
时,输出应为a,b
这是预期的输出
input output
001 a
010 b
011 b,a
100 c
101 c,a
110 c,b
111 c,b,a
实现这一目标的有效方法是什么?我隐约回想起有一些二元运算符可以达到同样的效果,但我无法回忆起这一点。
答案 0 :(得分:0)
您可以使用&
(按位和)运算符并检查结果是否为0,以查看整数是否由某个二进制数组成。
(011 & 001) != 0
(010 & 001) == 0
(010 & 010) != 0
final int a = 0b001, b = 0b010, c = 0b100;
int val = 0b011;
boolean containsA = (val & a) != 0; // true
boolean containsC = (val & c) != 0; // false