若要将一个8位二进制数的高4位求反,低4位不变,可以将原数与另一个数进行异或运算,则这个数是多少

1个回答

  • 楼主,这里可以用异或指令实现这个效果

    "异或"运算的规则是 1 XOR 1 = 0,1 XOR 0 = 1,0 XOR 1 = 1,0 XOR 0 = 0.

    这里楼主不知道你有没有发现一个规律,就是一个数与1异或,这个数就取反了,但是与0异或,这个数就不变.所以这里我们可以用异或的这个特性来解决这道题

    因为这道题是一个8位二进制的操作,所以现在我们假设AL = 55H

    汇编代码

    MOV AL,55H ;(AL) = 01010101B

    高4位取反,低4位不变

    因为是高四位取反,所以我们将我们所求的数的高四位置为1; 低四位不变,我们可以将所求数的低四位置0

    代码

    XOR AL,0F0H ;01010101 XOR 11110000 = 10100101 = A5H = AL

    所以,楼主,这道题的答案是0F0H

    PS:若有不明白的地方,