Как решить эту логическую операцию?(домашнее задание) - PullRequest
0 голосов
/ 22 января 2011

Учитель дал нам этот вопрос, и я не смог ответить на него, и я надеюсь получить здесь некоторую помощь.

Выполните следующую логическую операцию:
1- AB5D AND CD5F
2-DD1D XOR B159

И я хочу знать шаг, которому я должен следовать, чтобы найти правильный ответ.

Ответы [ 3 ]

3 голосов
/ 22 января 2011

Члены имеют шестнадцатеричное значение (AB5D, CD5F, ...), поэтому проще преобразовать их в двоичный код раньше.Вы можете использовать эту таблицу:

0 = 0000  4 = 0100  8 = 1000  C = 1100
1 = 0001  5 = 0101  9 = 1001  D = 1101
2 = 0010  6 = 0110  A = 1010  E = 1110
3 = 0011  7 = 0111  B = 1011  F = 1111

Итак, AB5D равен 1010101101011101.

И затем вы применяете побитовые операции.Это означает, что результат, например, A XOR 3:

A XOR 3 =
1010 XOR 0011 =
1001 =
9 (see conversion table)
2 голосов
/ 22 января 2011

Преобразуйте отдельные шестнадцатеричные символы в двоичные, поместите их один над другим, и для каждого столбца, если оба равны 1, результат будет равен одному;во всех остальных случаях результат будет нулевым.Запишите это ниже двух других двоичных строк.Затем, когда вы сделали это для всех цифр, преобразуйте его обратно в шестнадцатеричное.

Пример:

A = 1010
C = 1100
    ----
    1000 = 8

Ваша первая цифра ANDing AB5D и CD5F.Продолжайте делать это так, и вы получите это.

Операция XOR дает 1, где ЛИБО одна или другая цифра равна 1, но не обе.

Это будет стоить тогоосвежить все ваши побитовые операции ;все они могут быть сделаны одинаково.

0 голосов
/ 22 января 2011

0xAB5D И 0xCD5F = 0x895D

0xDD1D XOR 0xB159 = 06C44

Используйте 'calc' в windows или 'gnome-calculator' в GNOME linux или просто Pyrhon / Ruby it.

UPD: если вы хотите сделать это на бумаге, выполните следующие несколько простых шагов:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...