第十五章位运算 15.1位运算符 位运算的对象只能是整型或字符型数据 位运算符及功能 运算符含义 优先级 按位求反 左移 右移 &按位与 按位异或 22345 按位或
第十五章 位运算 15.1 位运算符 •位运算的对象只能是整型或字符型数据 运算符 含义 优先级 ~ 按位求反 1 > 右移 2 & 按位与 3 ^ 按位异或 4 | 按位或 5 位运算符及功能
扩展运算符及含义 扩展运算符表达式 等价的表达式 a>n 8 a&=b a=a&b a=ab b a=a b D
扩展运算符 表达式 等价的表达式 >= b>>=n b=b>>n &= a&=b a=a&b ^= a^=b a=a^b |= a|=b a=a|b 扩展运算符及含义
15.2位运算符的运算功能 1.按位取反运算(~) 2.“左移”运算(<< 是双目运算符左边是移位对象右边是左移的位数 左移时,右端(低位)补0,左端移出的部分舍弃 如:a:0000110a=6) b=a<<2:0001000b24=4*6) 当移出的部分无有效二进制数1,则左移一位,相当于乘以 2,反之则不适用 D
15.2 位运算符的运算功能 1. 按位取反运算(~) 2. “左移”运算(<<) 是双目运算符,左边是移位对象,右边是左移的位数. 左移时,右端(低位)补0,左端移出的部分舍弃. 如: a : 00000110(a=6) b=a<<2 : 00011000(b=24=4*6) 当移出的部分无有效二进制数1,则左移一位,相当于乘以 2,反之则不适用
3.“右移”运算(>) 右移时,右端移出的二进制位舍弃,左端移入分二种情况: a:对于无符号整数和正整数,高位补0 b:对于负整数,高位补1 见书P212 4.“按位与运算”(&) 具有如下特征:任何位上的二进制数,只要和0“与”,该 位立即被屏蔽;和1“与”,该位保留原值不变, D
3.“右移”运算(>>) 右移时,右端移出的二进制位舍弃,左端移入分二种情况: a:对于无符号整数和正整数,高位补0 b:对于负整数,高位补1 见书P212 4.“按位与运算”(&) 具有如下特征:任何位上的二进制数,只要和0“与”,该 位立即被屏蔽; 和1“与”,该位保留原值不变
如:11010010 &00010000 5按位异或运算(^) 0011001 11000011 D
5.按位异或运算(^) 00110011 11000011 如:11010010 & 00010000 ^
它具有如下特殊性征: 要使某位的数翻转,只要和1进行“异或”运算“,要 使某位保持原数,只要和0进行”异或“运算 6按位或运算(|) 个运算数中,只要二个相应二进制位中有一个 为1,该位的运算结果为1,二个相应位的数都为0 时,该位的运算结果才为0 7位数不同的运算数之间的运算规则 先将两数右端对齐 再将位数短的一个运算数向高位扩充按位运算 D
6.按位或运算( | ) 二个运算数中,只要二个相应二进制位中有一个 为1,该位的运算 结果为1,二个相应位的数都为0 时,该位的运算结果才为0 它具有如下特殊性征: 要使某位的数翻转,只要和1进行“异或”运算“ ,要 使某位保持原数,只要和0 进行”异或“运算 7.位数不同的运算数之间的运算规则 先将两数右端对齐 再将位数短的一个运算数向高位扩充,按位运算