欢迎来到天天文库
浏览记录
ID:36291022
大小:389.81 KB
页数:16页
时间:2019-05-08
《c语言-中断和位运算》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第13章中断和位运算13.1中断13.2位运算13.2位运算13.2.1位运算符C语言提供了6种位运算运算符。&按位与运算
2、按位或运算^按位异或运算~按位取反运算<<按位左移运算>>按位右移运算其中~运算符是单目运算符,其余的都是双目运算符。位运算的运算对象只能是整型和字符型数据,不能是浮点型数据。当位运算两侧的运算对象类型不相同时,要发生类型的自动转换。1.按位与运算&运算的含义是对参与按位与运算的两个运算对象按二进制方式对对应位进行与运算,也就是对参与运算的两个运算对象的机器码的对应位进行与运算。当与运算的两个对应位都为1时,运算结果的对应位也为1;否则运算结果的对应位为0。假定某函数体
3、有数据描述:inta=3,b=–1;charc='A'那么:(1)表达式a&6的值是2。a的机器码=0000000000000011&6的机器码=000000000000011000000000000000102.按位或运算按位或运算的含义是对参与按位或运算的两个运算对象按二进制方式对对应位进行或运算,也就是对参与运算的两个运算对象的机器码的对应位进行或运算。当或运算的两个对应位都为0时,运算结果的对应位也为0;否则运算结果的对应位为1。假定某函数题有数据描述:inta=3,b=–1;charc='A'那么:(1)表达式a
4、6的值是7。a的机器码=00000000000000116的机器
5、码=000000000000011000000000000001113.按位异或运算^运算的含义是对参与按位异或运算的两个运算对象按二进制方式对对应位进行异或运算,也就是对参异或运算的两个运算对象的机器码的对应位进行异或运算。当异或运算的两个对应位不相同时,运算结果的对应位为1;否则运算结果的对应位为0。假定某函数题有数据描述:inta=3,b=–1;charc='A'那么:①表达式a^6的值是5。a的机器码=0000000000000011^6的机器码=000000000000011000000000000001014.按位取反运算运算的含义是对参与取反运算的运算对象按二进制方式对每一个位
6、求反,也就是对参与取反运算的运算对象的机器码按位取反。如果某位为1,则变为0;为0,则变为1。取反运算符是单目运算符。假定某函数题有数据描述:inta=3,b=–1;那么:a的机器码0000000000000011~a的机器码1111111111111100取反后a的值为–4。b的机器码1111111111111111~b的机器码0000000000000000取反后b的值为0。5.按位左移运算<<运算符的作用是对参与运算的运算对象按规定的位移数进行左移,即对运算对象的机器码左移规定的位。<<运算符的左操作数是需要移位的数据,右操作数是移位的位数。在移位的过程中高位移出的位舍弃,低位左移后补
7、0。<<运算符构成的表达式一般格式为a<>运算符的作用是对参与运算的运算对象按规定的位移数进行右移,即对运算对象的机器码右移规定的位。>>运算符的左操作数是需要移位的数据,右操作数是移位位数。在移位的过程中低位移
8、出的位舍弃,高位右移后补0或1;如果需要移位的数据是无符号数则补0,有符号数则补符号位的值。>>运算符构成的表达式一般格式为a>>n,其中a是需要移位的数据,n是移位的位数。假定某函数题有数据描述:inta=4,b=–16;那么:a=a>>1移位前a的机器码=0000000000000100移位后a的机器码=0000000000000010(黑体表示右移后补位的内容)b=b>>4移位前b的机器码=1111111111110000移位后b的机器码=1111111111111111移位后b=–1。7.复合的位运算赋值运算符位运算符和赋值运算符可以组成复合的位运算赋值运算符,具体含义和复合的算术赋
9、值运算符一样。所有的复合的赋值运算符优先级都是一样的。复合的位运算赋值运算符有&=,
10、=,~=,^=,<<=,>>=。假如inta=16;则a<<=2的值为64。
此文档下载收益归作者所有