0

あいまいなタイトルで申し訳ありません。

有限数のプロパティ (読み取り、書き込み、実行など) を渡す最良の方法は何ですか。私はこれらのアクセス許可のようにこれを行うことができると思います-プロパティに割り当てられたいくつかの数値の合計を数えます-1、2、4、8、16 ...これを行うのが最も簡単で、加数を取得するためにどのアルゴリズムを使用する必要がありますか- たとえば、17 がある場合、これが 16 と 1 であることをどのように計算できますか?

ありがとう。

4

1 に答える 1

1

Bitwise Operatorsを使用できます。このようにして、整数の実際のビットを比較できます。これがどのように機能するかは次のとおりです。

Bit Pattern
8 4 2 1
1 0 0 0 = 8
0 1 1 1 = 7
0 1 1 0 = 6
0 1 0 1 = 5
0 1 0 0 = 4
0 0 1 1 = 3
0 0 1 0 = 2
0 0 0 1 = 1
0 0 0 0 = 0

そう、

6 & 4 = 4

6 と 4 の両方に存在するビットを表示する手段。 .

または

7 & 3 = 3

手段は、7 と 3 の両方に存在するビットを表示します。 3 (2 + 1) を返します。

于 2013-09-11T12:56:29.907 に答える