2

、、のサンプル問題がありw=1、解決策はですが、理由がわかりませんか?y=7z=0x = ~(w && y) | y;x = -1

これが私の思考プロセスです:
(w && y)=(1 && 7)= 1〜1 1 inビットは
〜1in ビットです
0000 0001
1111 1110

ここから何をすべきかわからない。

4

4 に答える 4

6

最後のステップはビットごとのORであるため、次のようになります。

1111 1110 | 0000 0111 = 1111 1111

これは-1です。

于 2011-05-09T00:56:32.107 に答える
1

ビット単位の〜1は1111 11101111 1110または0000 0111であり1111 11111111 1111-1です。最上位ビットは負のフラグであり、負の数は減法混色です。そのため、符号付きバイトは-128まで保持できますが、127までしか保持できません。

于 2011-05-09T00:58:00.287 に答える
0

あなたは正しい~(w && y)です1111...0。の最後のビット71であるため、|これを7で指定すると、、1111...1またはが得られ-1ます。

于 2011-05-09T00:58:07.200 に答える
0

まず、ビット演算&の代わりにを使用する必要があります。&&次に、~1 = 111...1110計算後、 y(7)とORを1111..1111とって、-1の2の補数表現を取得します。

于 2011-05-09T00:58:25.403 に答える