1

ビットのマスキングについて簡単な質問があります。2 つの 8 ビット ストリームをオンにしたい場合、

AND2 つに対してロジックを使用します。

     10101010
AND  01101001
     ________
     00101000

または、ストリーム内のビットの 1 つを実際に変更して、ビットをオンにしますか? 私の質問は、オン ( を使用AND) またはオフ ( を使用OR) するときに、実際にビットを変更するか、AND/ORロジックを使用して 2 つを比較するかということだと思います。

4

3 に答える 3

1

オン(1)にするには、オンにしたい位置に1を付けたOR演算子を使用します。これは、ストリームの元の値に関係なく、結果がオンになるためです。

   00000000 // whatever the values in the input
OR 00000001 // 'OR' turns on the last position in the stream
   --------- 
   00000001

オフ(0)にするには、オフにしたい位置に0を指定してAND演算子を使用します。これは、入力ストリームの元の値に関係なく、結果がオフになるためです。

    11111111 // whatever the values here
AND 11111110 // turns off the last position in the stream
    ---------
    11111110
于 2011-05-16T18:37:50.010 に答える
0

この場合、「ストリーム」が何を意味するのかわかりません。

ほとんどの言語では、二項演算だけでなく、割り当ても必要になります。

つまり、通常は次のようなものがあります

foo = get_byte() // Call some function to get the original value of foo
foo = foo AND 11110111 // Replace foo with the result of the AND, which
                       // in this case will turn off the 4th bit, and leave
                       // the other bits unchanged

最後の行は、fooの内容を二項演算の結果に置き換えます

于 2010-02-12T00:56:21.957 に答える
0

他の人、私が間違っている場合は修正してください:

OR8 ビット ストリームの 4 番目のビットをオンにするには、 を使用したロジックを使用して 8 ビット ストリームを比較します00001000

8 ビット ストリームの 4 番目のビットをオフにするには、 を使用したANDロジックを使用して 8 ビット ストリームを比較し11110111ます。

ロジックを使用11111111して使用するビットを切り替えるには。XOR

于 2010-02-12T00:18:43.643 に答える