0

あいまいで申し訳ありませんが、私たちの先生は、私たちが質問する場合はそうするように具体的に教えてくれました.

整数として保存したい9つのフラグがあります。
つまり、0b111111111それらすべてがトリップします。

現在、トリップした場合に int に追加する if ステートメントがあります。すなわち。

if (flag0=="tripped" && flag0=="hasn't been tripped before") flagInt += 1;

if (flag1=="tripped" && flag1=="hasn't been tripped before") flagInt += 2;

if (flag2=="tripped" && flag2=="hasn't been tripped before") flagInt += 4;

等々、

フラグが作動したかどうかを確認するコードを書くのに苦労しています。どうすればこれを行うことができますか?

編集:整数をバイナリ表現の文字列に変換することを検討したので、括弧でチェックすることができましたが、かなりの量のデータに対してこれを行う必要があり、遅すぎます

4

1 に答える 1

3

ビット状態を取得するにnは (ビット n を 0 または 1 として返します):

(value>>n) & 1

ビットn状態を設定するには (フラグは 0 または 1):

value = (value & ~(1 << n)) | (flag << n)
于 2013-09-08T00:58:20.453 に答える