第13章中断和位运算13
2位运算13
2位运算13
1位运算符C语言提供了6种位运算运算符
&按位与运算|按位或运算^按位异或运算~按位取反运算按位右移运算其中~运算符是单目运算符,其余的都是双目运算符
位运算的运算对象只能是整型和字符型数据,不能是浮点型数据
当位运算两侧的运算对象类型不相同时,要发生类型的自动转换
1.按位与运算&运算的含义是对参与按位与运算的两个运算对象按二进制方式对对应位进行与运算,也就是对参与运算的两个运算对象的机器码的对应位进行与运算
当与运算的两个对应位都为1时,运算结果的对应位也为1;否则运算结果的对应位为0
假定某函数体有数据描述: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|6的值是7
a的机器码=00000000000000116的机器码=000000000000011000000000000001113.按位异或运算^运算的含义是对参与按位异或运算的两个运算对象按二进制方式对对应位进行异或运算,也就是对参异或运算的两个运算对象的机器码的对应位进行异或运算
当异或运算的两个对应位不相同时,运算结果的对应位为1;否则运算结果的对应位为0
假定某函数题有数据描述:inta=3,b=–1;charc='A'那么:①表达式a^6的值是5
a的机器码=0000000