3

たとえば、「11010011011」のような(文字列としての)ユーザー入力があるとします。

ここで、特定の位置のビットが設定されているかどうかを確認します(各桁はフラグとして機能する必要があります)。

注:ユーザーの入力を文字列として受け取っています。

どうやってやるの?

4

2 に答える 2

4

文字列をそのまま使用できます。たとえば、左側の最初のビットを確認したいとします。

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);
于 2012-11-01T15:02:27.623 に答える
4

ビット単位の演算を使用する場合は、最初に文字列を整数に変換し、ビットマスクでテストします。

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
.....
于 2012-11-01T15:06:17.310 に答える