第10章位运算
第10章 位 运 算
位运算是指对二进制位进行的运算。每个二进制位中 只能存放0或1。因此,位运算就是对二进制数的运算。通 常,将一个数据用二进制数表示后,最右边的二进制位称 为最低位(第0位),最左边的二进制位为最高位。 1514131211109876543210 图10.1微机中整数的二进制位表示
位运算是指对二进制位进行的运算。每个二进制位中 只能存放0或1。因此,位运算就是对二进制数的运算。通 常,将一个数据用二进制数表示后,最右边的二进制位称 为最低位(第0位),最左边的二进制位为最高位。 图10.1 微机中整数的二进制位表示 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
10.1二进制位运算 10.2位段 10.3程序举例
10.1 二进制位运算 10.2 位 段 10.3 程序举例
10.1二进制位运算 在C语言中共提供了6种位运算符,如表10.所示。 表10.1 位运算符 意义 按位与 按位或 按位异或 按位取反 左移 右移 没回日录
10.1 二进制位运算 在C语言中共提供了6种位运算符,如表10.1所示。 表10.1 位运算符 意 义 & | ^ ~ << >> 按位与 按位或 按位异或 按位取反 左移 右移
(1)在这6种位运算符中,其中按位取反是单目运算符, 只有一个运算对象,其他均为双目运算符,有两个运算对象 (2)位运算的运算对象只能是整型(包括int, short, long和 unsigned)或字符型数据,而不能是实型数据。 (3)各位运算符的优先级比较分散,与其他运算符一起, 其优先级从高到低如下: 逻辑非()→>按位取反()→算术运算符→左移运算符(<<) 和右移运算符(>)→关系运算符→按位与运算符(&),按位异 或运算符(^),按位或运算符()→&&与→赋值运算符
(1)在这6种位运算符中,其中按位取反是单目运算符, 只有一个运算对象,其他均为双目运算符,有两个运算对象。 (2)位运算的运算对象只能是整型(包括int,short, long和unsigned)或字符型数据,而不能是实型数据。 (3)各位运算符的优先级比较分散,与其他运算符一起, 其优先级从高到低如下: 逻辑非(!)→按位取反(~)→算术运算符→左移运算符(<<) 和右移运算符(>>)→关系运算符→按位与运算符(&),按位异 或运算符(^),按位或运算符(|)→&&与|| →赋值运算符