2016-06-26 5 views
0

私は3つの文字a、b、cを持っています。ここでは、Bのバイナリ表現は、私がしたいことは、誰かが011として入力を提供する場合、出力はここa,bバイナリ入力を期待した結果に変換するには?

あるべきであるが、出力

は何
input output 
001  a 
010  b 
011  b,a 
100  c 
101  c,a 
110  c,b 
111  c,b,a 

期待されている

a 001 
b 010 
c 100 

C、ですこれを達成する効率的な方法は?私は曖昧に同じバイナリ演算子があったことを思い出しましたが、私はこれを思い出すことができませんでした。

+0

あなたは何を試してみましたか?あなたはどこにいるのですか?そしてなぜ奇妙な注文 - なぜそれは "a、b"ですが "c、b、a"ですか?   –

答えて

0

&(ビット単位の)演算子を使用して、結果が0でないかどうかをチェックして、整数が特定の2進数で構成されているかどうかを確認できます。

(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 
+0

あなたは&を意味しないのですか?それは|しかしそれは異なって動作します – harold

+0

@haroldはい、気づいてくれてありがとう! – SamTebbs33

関連する問題