0

int a = 17 (=10001)

int b=5 (101)

a&b      1         bitwise AND
a|b     21         bitwise OR
a^b     20         XOR (16+4) “just one”
a&&b     1         logical AND
a||b     1         logical OR
-b      -5         minus b
~b       -6         ?
~(~a)      17        ?
!b       0         logical “NOT B”
!(!a))   1         logical “NOT NOT A”
a=b      0         “a==b?”
a=’A’   65         ?
a|’@’   64         ?

の部分を説明してください。は。

4

6 に答える 6

2

-単項負です。オーバーフローがないと仮定して、値の負の値を取ります。負の 5 は明らかに「-5」です。

~ビットごとの補数です。それがどのように機能するかを調べることをお勧めします。2 の補数で~xは、 に相当し-x - 1ます。そして の場合~(~a)、明らかに補数の補数は元の数です。

最後の 2 つは、単に文字を取り、それを数字として扱っているだけです。これは、文字のASCII値を使用するだけです。'A' の値は 65 ですが、先生がそれらすべてを暗記することを期待しているとは思えません。おそらくASCIIテーブルを取得します。

于 2012-09-30T13:45:45.327 に答える
2

a = 17 (10001 バイナリ) および b = 5 (101 バイナリ) とすると、次のようになります。

a&b      1         bitwise AND
a|b     21         bitwise OR
a^b     20         XOR (16+4) “just one”
a&&b     1         logical AND
a||b     1         logical OR
-b      -5         minus b
~b       -6         bitwise NOT 
~(~a)      17        bitwise NON NOT - the same as a
!b       0         logical “NOT B”
!(!a))   1         logical “NOT NOT A”
a=b      5         assignment to a the value of b
a='A'   65         assignment to a the ASCII value of char 'A'
a|'@'   81         a OR ASCII value of char '@' 
于 2012-09-30T13:46:25.710 に答える
2
~b       -6         ?

「~」はすべてのビットを反転し、負の数は2 の補数と呼ばれるものを使用して表されます。-6 は、「5」のすべてのビットを反転したときに発生するものです。異なるビットパターンが得られます。これは、2 の補数の「-6」と同じビットです。

~(~a)      17        ?

似ている。すべてのビットを反転し、さらにすべてのビットを反転すると、何が得られますか? 前と同じ。

a=’A’   65         ?

内部的には、コンピューター内の他のすべてのものと同様に、文字は数字で表されます。現在使用されている数字<->文字テーブルは事実上すべてASCIIに基づいており、'A' はたまたま ASCII テーブルで数字の 65 を持っています。

a|’@’   64         ?

それは意味がありません。「@」は 64 (ASCII、再び) で、16 進数の 0x40 です。0x40 | 17 は 81 のはずです。

于 2012-09-30T13:49:17.423 に答える
1

演算子はビットごとの NOT です。~つまり、のすべてのビットintが反転されます。数値に与える影響は、型と実装によって異なります。

演算子はビットごとの|OR です。C では、a|'A' の場合と同様に、 anintと a のOR が完全に有効です。charの値はcharASCII 番号です。

=演算子は代入です。割り当ての結果は、割り当てられたものです。

于 2012-09-30T13:44:58.587 に答える
1
~b - binary NOT b
~(~a) - binary NOT ( NOT a )
a='@' - assign the int value of '@' to a
a|'A' - bitwise OR with the int value of 'A'
于 2012-09-30T13:46:30.533 に答える
1
  • =: 代入演算子。
  • ~: ビット単位NOTの演算子 (各ビットの論理否定)。
  • |: ビット単位のOR演算子 (OR各ビットを含む論理)。
于 2012-09-30T13:46:48.023 に答える