目录 上一页 下一页 下一章

第1章 汇编语言基础知识 -5-

  ③ 对给定的数作什么操作可得到二进制数01001011。
  ④ 若把给定的数同00100010作XOR操作,将得到什么结果。
解: ① 将OR操作的结果同给定的数相比,不难发现只要把给定数字的bit0,bit3位置成1,其它位状态保持不变,即可得出结果。因此可很容易求出八位二进制数00001001,并可验证:
10110100
OR) 00001001
10111101
  可见,OR操作可以方便的将某个二进制数的特定位置成"1"而保存其它位不变。只要取另一个二进制数,让这个数中的相应数位--即和给定的数中要改变的数位相对应的位--为"1",而其它位为"0",即可达到目的。
  ② 将AND操作的结果同给定的数相比,可以看出只要把给定数字的bit2,bit7位置成0,其它位保持不变,即得出结果。因此可很容易求出八位二进制数01111011,并且可以验证:
10110100
AND) 01111011
00110000
  可见,和OR操作相对应,AND操作可以把某个二进制数的特定位置"0"而保持其它位不变。只要取另一个二进制数,让这个数的相应位为"0",而其它位为"1",即可达到目的。
  ③ 比较结果和给定数,可看出将已知数所有位取相反状态,可得到结果。因此可用NOT操作,即
NOT) 10110100
01001011
  ④ 将两个数作XOR操作
10110100
XOR) 00100010
10010110
  把得到的结果10010110同已知数相比较,可以看出只要将已知数的bit1,bit5两位取反,就能得出结果。将(3)和(4)进行比较,可以发现这样一个规律:NOT操作可以将给定数的所有位取反,而XOR操作可以将给定数的特定位取反;进一步分析(4),不难看出若把所得到的结果10010110和00100010再作一次XOR操作:
10010110
XOR) 00100010
10110100
又能得到了已知的数。即取反后的数位又重新恢复原状态。因此我们说,XOR操作可以反复改变给定数中的特定位状态。

Copyright © 2004-2015 Reanimator www.cookmoon.org

目录 上一页 下一页 下一章