若要将一个8位二进制数的高4位求反,低4位不变,可以将原数与另一个数进行异或运算,则这个数是多少
答案:1 悬赏:0 手机版
解决时间 2021-03-26 14:30
- 提问者网友:趣果有间
- 2021-03-25 17:20
若要将一个8位二进制数的高4位求反,低4位不变,可以将原数与另一个数进行异或运算,则这个数是多少
最佳答案
- 五星知识达人网友:梦中风几里
- 2021-03-25 17:26
楼主, 你好, 这里可以用异或指令实现这个效果
"异或"运算的规则是 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:若有不明白的地方, 请追问追问老师回答的很详细 谢谢 这种题的思路是不是就是自己假设个数 然后按照运算规则去套啊追答不是这样的, 我的假设只是让你更容易明白这道题到底在考什么。让你知道这道题为什么要这么做而已。而不是套。
这道题主要考的是楼主你对"位操作指令"的理解程度。只要你理解了这些指令的特性与运用, 那么做这些题是易如反掌的
"异或"运算的规则是 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:若有不明白的地方, 请追问追问老师回答的很详细 谢谢 这种题的思路是不是就是自己假设个数 然后按照运算规则去套啊追答不是这样的, 我的假设只是让你更容易明白这道题到底在考什么。让你知道这道题为什么要这么做而已。而不是套。
这道题主要考的是楼主你对"位操作指令"的理解程度。只要你理解了这些指令的特性与运用, 那么做这些题是易如反掌的
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯