4

何が起こっているのか、これが次の行からどのように発生するのかを理解できません。

例 1:以下の結果として1を取得します。

int a = 1, b = 9;
int r = a & b;
Console.WriteLine(r);

例 2:以下の結果として8を取得します。

int a = 10, b = 9;
int r = a & b;
Console.WriteLine(r);

この文脈における&の意味と意味がわかりません。&上記の結果はどのように操作されますか? ロジックは?

4

5 に答える 5

10

ビット演算:

9 = 1001       9 = 1001
1 = 0001      10 = 1010
--------      ---------
& = 0001 = 1   & = 1000 = 8

ここで&、真理値表 (ビットごと) が続きます。

& | 0 1
--+----
0 | 0 0
1 | 0 1

つまり、「両方の入力が 1 の場合にのみ 1 を出力する」

于 2013-04-26T06:46:30.380 に答える
2

から& Operator (C# Reference)

整数型の場合、そのオペランドの論理ビットごとの AND&を計算します。

の真理値表&

& | 0 1
--+----
0 | 0 0
1 | 0 1

1 & 9結果を書くと、次1のように機能するためです。

0001
1001

x---------------
0001

10 & 9結果を書くと、次8のように機能するためです。

1010
1001

x---------------
1000
于 2013-04-26T06:43:29.950 に答える
1

それはビット単位&(AND)演算子です。

ビットごとの and 演算子はビットを変更します。これは、ビットごとのロジックに重要な機能を提供します。これを 2 つの数値に適用すると、結果は 1 を含む別の数値になり、2 つの数値のそれぞれにも 1 が含まれます。

参照: & 演算子 (C# リファレンス)

int a = 1, b = 9; の場合 int r = a & b;

a: 0001 (binary equvivalent of 1)
b: 1001 (binary equvivalent of 9)
----------
r: 0001 (which would be 1)
于 2013-04-26T06:43:13.327 に答える
0

int r = a & b; // a = 1、b = 9

1番目の例:

a: 0 0 0 1
b: 1 0 0 1

r: 0 0 0 1  // 1

2番目の例:

a: 1 0 1 0
b: 1 0 0 1

r: 1 0 0 0  // 8

& (AND 演算子) は、a と b が 1 の場合、結果 (r) が 1 のみであることを意味します。それ以外の場合は 0 です。

于 2013-04-26T06:47:26.640 に答える
0

Hereサンプルです:

    3:  0011
    1:  0001

3 & 1:  0001
于 2013-04-26T06:47:13.137 に答える