Как этот фрагмент кода C# работает?

Может кто-то объяснять следующую часть кода

int x = 45; 
int y = x &= 34;

Это присваивается 32 к y

9
задан mafu 17 May 2010 в 09:03
поделиться

7 ответов

Он выполняет побитовое «и» как составной оператор присваивания. Это эквивалентно:

int x = 45;
x = x & 34;
int y = x;

Теперь 45 = 32 + 8 + 4 + 1 и 34 = 32 + 2, поэтому результат побитового «и» равен 32.

Лично я считаю, что использование составного оператора присваивания в объявление переменной довольно нечитаемо - но, по-видимому, это не был "настоящий" код для начала ...

25
ответ дан 4 December 2019 в 06:40
поделиться
int x = 45; 
int y = x &= 34;
Gives: y = 32

int x = 45;  // 45 = 101101
             // 34 = 100010
x = x & 34;  // 101101
             // 100010 &
             // --------
             // 100000  ( = 32 )

int y = x;    //  y = 32
10
ответ дан 4 December 2019 в 06:40
поделиться

Это эквивалент:

int x = 45;
x = x & 34;
int y = x;

Оператор & для целочисленных типов вычисляет логическое побитовое И для своих операндов.

0
ответ дан 4 December 2019 в 06:40
поделиться

Это побитовая операция, дополнительную информацию можно получить найдено здесь:

http://msdn.microsoft.com/en-us/library/sbf85k1c%28VS.80%29.aspx

0
ответ дан 4 December 2019 в 06:40
поделиться

Выглядит как побитовое И, которое присваивается x с помощью сокращенной записи & = , а также присваивается y .

0
ответ дан 4 December 2019 в 06:40
поделиться

Здесь x & = 34 используется и как присваивание, и как выражение. Он вычисляет значение x & 34 , присваивает его x , и значение выражения соответствует назначенному.

Результат поразрядной операции и 45 & 34 равен 32 , который присваивается x, а затем также y.

0
ответ дан 4 December 2019 в 06:40
поделиться
45 = 101101(binary)
34 = 100010(binary)

45 & 34 = 100000(binary) = 32
0
ответ дан 4 December 2019 в 06:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: