《中断和位运算》由会员分享,可在线阅读,更多相关《中断和位运算(16页珍藏版)》请在金锄头文库上搜索。
1、第13章 中断和位运算13.1 中 断13.2 位 运 算13.2 位 运 算 13.2.1 位运算符 C语言提供了6种位运算运算符。char c=A 那么:(1)表达式a | 6的值是7 。a的机器码 = 0000 0000 0000 0011 6的机器码 = 0000 0000 0000 01100000 0000 0000 01113按位异或运算 运算的含义是对参与按位异或运算 的两个运算对象按二进制方式对对应位进行异或 运算,也就是对参异或运算的两个运算对象的机 器码的对应位进行异或运算。当异或运算的两个 对应位不相同时,运算结果的对应位为1;否则运 算结果的对应位为0。假定某函数题有
2、数据描述:int a=3,b=1;char c=A 那么: 表达式a 6的值是5。a的机器码 = 0000 0000 0000 0011 6的机器码 = 0000 0000 0000 01100000 0000 0000 01014按位取反运算运算的含义是对参与取反运算的运算 对象按二进制方式对每一个位求反,也就 是对参与取反运算的运算对象的机器码按 位取反。如果某位为1,则变为0;为0,则 变为1。取反运算符是单目运算符。假定某函数题有数据描述:int a=3,b=1;那么:a的机器码0000 0000 0000 0011a的机器码1111 1111 1111 1100取反后a的值为4。b的
3、机器码1111 1111 1111 1111b的机器码0000 0000 0000 0000取反后b的值为0。5按位左移运算运算符的作用是对参与运算的运算对象 按规定的位移数进行右移,即对运算对象的机 器码右移规定的位。运算符的左操作数是需 要移位的数据,右操作数是移位位数。在移位 的过程中低位移出的位舍弃,高位右移后补0 或1;如果需要移位的数据是无符号数则补0, 有符号数则补符号位的值。运算符构成的表 达式一般格式为an,其中a是需要移位的数 据,n是移位的位数。假定某函数题有数据描述:int a=4,b= 16;那么:a=a1 移位前a的机器码 = 0000 0000 0000 0100移位后a的机器码 = 0000 0000 0000 0010 (黑体表示右 移后补位的内容)b=b4 移位前b的机器码 = 1111 1111 1111 0000移位后b的机器码 = 1111 1111 1111 1111移位后b= 1。7复合的位运算赋值运算符位运算符和赋值运算符可以组成复合的 位运算赋值运算符,具体含义和复合的算术 赋值运算符一样。所有的复合的赋值运算符 优先级都是一样的。 复合的位运算赋值运算符有 则a=2的值为64。