たとえば、「11010011011」のような(文字列としての)ユーザー入力があるとします。
ここで、特定の位置のビットが設定されているかどうかを確認します(各桁はフラグとして機能する必要があります)。
注:ユーザーの入力を文字列として受け取っています。
どうやってやるの?
たとえば、「11010011011」のような(文字列としての)ユーザー入力があるとします。
ここで、特定の位置のビットが設定されているかどうかを確認します(各桁はフラグとして機能する必要があります)。
注:ユーザーの入力を文字列として受け取っています。
どうやってやるの?
文字列をそのまま使用できます。たとえば、左側の最初のビットを確認したいとします。
if (input.charAt(0) == '1') { //
または、BitSetを使用する場合は、ループで初期化できます。
String input = "11010011011";
BitSet bs = new BitSet(input.length());
int i = 0;
for (char c : input.toCharArray()) {
if (c == '1') bs.set(i);
i++;
}
次に、i番目のビットが設定されているかどうかを確認します。
boolean isSet = bs.get(i);
ビット単位の演算を使用する場合は、最初に文字列を整数に変換し、ビットマスクでテストします。
int val = Integer.parseInt("11010011011", 2);
System.out.println(val & (1<<0)); //First bit
System.out.println(val & (1<<1)); //Second bit
System.out.println(val & (1<<2)); //Third bit
.....