老师给了我们这个问题,我无法回答,希望能得到一些帮助。
执行以下逻辑操作:
1- AB5D和CD5F
2- DD1D XOR B159
我想知道我应该采取的步骤,以找到正确的答案。
答案 0 :(得分:3)
成员是十六进制的(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)
答案 1 :(得分:2)
将单个十六进制字符转换为二进制,将它们放在一起,对于每一列,如果两者都是1,则结果为1;在所有其他情况下,结果将为零。将其写在另外两个二进制字符串下面。然后,当您对所有数字执行此操作时,将其转换回十六进制。
示例:
A = 1010
C = 1100
----
1000 = 8
你的第一个数字是ANDing AB5D和CD5F。继续这样做,你会得到它。
XOR运算给出一个1,其中一个或另一个数字是1,但不是两个。
同样值得你清理所有bitwise operations;他们都可以用同样的方式完成。
答案 2 :(得分:0)
0xAB5D AND 0xCD5F = 0x895D
0xDD1D XOR 0xB159 = 06C44
在Windows中使用'calc'或在GNOME linux中使用'gnome-calculator'或者只使用Pyrhon / Ruby吧。
UPD:如果您想在纸上执行此操作,请按照以下几个简单步骤操作: