第13章 中断和位运算 7
第13章 中断和位运算
13.1 中断 132位运算 7
13.1 中 断 13.2 位 运 算
132位运算 13.21位运算符 C语言提供了6种位运算运算符。 &按位与运算 1按位或运算 按位异或运算 按位取反运算 <<按位左移运算 >>按位右移运算 其中~运算符是单目运算符,其余的都是双 目运算符。位运算的运算对象只能是整型和字符 型数据,不能是浮点型数据。 当位运算两侧的运算对象类型不相同时,要 发生类型的自动转换
13.2 位 运 算 13.2.1 位运算符 C语言提供了6种位运算运算符。 & 按位与运算 | 按位或运算 ^ 按位异或运算 ~ 按位取反运算 << 按位左移运算 >> 按位右移运算 其中~运算符是单目运算符,其余的都是双 目运算符。位运算的运算对象只能是整型和字符 型数据,不能是浮点型数据。 当位运算两侧的运算对象类型不相同时,要 发生类型的自动转换
按位与运算 &运算的含义是对参与按位与运算 的两个运算对象按二进制方式对对应位进行 与运算,也就是对参与运算的两个运算对象 的机器码的对应位进行与运算。当与运算的 两个对应位都为1时,运算结果的对应位也 为1;否则运算结果的对应位为0。 7
1.按位与运算 &运算的含义是对参与按位与运算 的两个运算对象按二进制方式对对应位进行 与运算,也就是对参与运算的两个运算对象 的机器码的对应位进行与运算。当与运算的 两个对应位都为1时,运算结果的对应位也 为1;否则运算结果的对应位为0
假定某函数体有数据描述: int a=.b=1 char c=A' 那么: (1)表达式a&6的值是2。 a的机器码000000000001 &6的机器码=0000000010 0000000000000010 7
假定某函数体有数据描述: int a=3,b=–1; char c='A' 那么: (1)表达式a & 6的值是2。 a的机器码 = 0000 0000 0000 0011 & 6的机器码= 0000 0000 0000 0110 0000 0000 0000 0010