如何将二进制输入转换为预期结果?

时间:2016-06-26 13:57:38

标签: java algorithm

我有三个字符说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

实现这一目标的有效方法是什么?我隐约回想起有一些二元运算符可以达到同样的效果,但我无法回忆起这一点。

1 个答案:

答案 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