Как получаются байтовые значения (пример XOR) - PullRequest
0 голосов
/ 01 августа 2011

Я читал эту страницу здесь из MSDN относительно оператора XOR и его использования.

На полпути вниз по странице я прочитал следующий код:

// Bitwise exclusive-OR of 10 (2) and 11 (3) returns 01 (1).
            Console.WriteLine("Bitwise result: {0}", Convert.ToString(0x2 ^ 0x3, 2));

Теперь я не могу понять для себя, как 10 равняется 2, или как 11 равняется 3. Не возражает ли кто-нибудь объяснить это в простых терминах, чтобы я мог ясно понять концепцию здесь?

Спасибо,

Эван

Ответы [ 5 ]

6 голосов
/ 01 августа 2011

«10» и «11» в тексте являются просто двоичными представлениями чисел.Так что «10» в двоичном коде равняется «2» в десятичном, а «11» в двоичном равно «3» в десятичном.

Хотя это не очень понятно, я признаю ...

(Если это не поможет, пожалуйста, прокомментируйте, сказав, что еще сбивает с толку. Я подозреваю, что этого достаточно.)

0 голосов
/ 01 августа 2011

В двоичном виде он показывает, что шестнадцатеричное (0x2) равно 00000010 и (0x3) равно 00000011.

Поэтому в XOR это

00000010
00000011 
--------
00000001

enter image description here

0 голосов
/ 01 августа 2011

Проблема здесь заключается в конвертации базы.В базе 2 (или в двоичном виде) мы представляем число a как серию нулей и единиц.Взгляните на http://en.wikipedia.org/wiki/Binary_numeral_system

0 голосов
/ 01 августа 2011
10 XOR 11 = 01


 10
-
 11
----
 01

Исключительно означает, что для получения '1' должна быть только одна '1', во всех остальных случаях вы получаете 0.

0 голосов
/ 01 августа 2011

10 в двоичном виде - это 2 в десятичном виде, 11 в двоичном виде - это 3

(10) 2 = 1 * 2 ^ 1 + 0 * 2 ^ 0 = 2 (11) 2 = 1 * 2^ 1 + 1 * 2 ^ 0 = 3

...