地址上的按位操作

时间:2014-12-01 06:10:10

标签: bit-manipulation bit computer-architecture

我必须解决一个问题

  

ab的值如果ab& 0x3f等于0x27。

为了解决问题,我假设让ab为0xMN,然后N&f表示N&1111,但这里的书说明N&1111应该产生0111,即{{1} }} => N应为7。 同样地,7如何在没有说明如何的情况下如何产生M&0011

对于你们这个人来说这可能很简单,但我在这里尝试没有成功。

1 个答案:

答案 0 :(得分:1)

以这种方式思考 - 一点只能有2个可能的值,即0或1.如果你记下二进制表示,你最终会得到类似下面的东西:

  abcd efgh
& 0011 1111
-----------
= 0010 0111

按照bitwise AND的定义,给出以下结果的a到h的值分别为0,0,1,0,0,1,1,1。转换回十六进制,值为0x27。

正如@jlahd在下面的评论中指出的,还有三个值可以满足这个等式:0x67,0xa7和0xe7。这是因为x&0 = 0因此上述ab可以采用任何可能的值,而不会影响结果。