C++语言程序设计

| 表3-7 位运算符

运算符 | 名字 | 实例
~ | 取反 | ~'\011' // 得出 '\366'
& | 逐位与 | '\011' & '\027' // 得出'\001'
| | 逐位或 | '\011' | '\027' // 得出'\037'
^ | 逐位异或 | '\011' ^ '\027' // 得出'\036'
<< | 逐位左移 | '\011' << 2 // 得出'\044'
>> | 逐位右移 | '\011' >> 2 // 得出'\002'

位操作运算符是用来进行二进制位运算的运算符。它分为两类：逻辑位运算符和移位运算符。
1、逻辑位运算符
（1）单目逻辑位运算符：~（按位求反）
作用是将各个二进制位由1变0，由0变1。
（2）双目逻辑运算符：&（按位与），|（按位或），^（按位异或）
其中优先级&高于^，而^高于|。
& ：两个都为1时结果为1。
| ：两个其中有一个为1则结果为1。
^ ：两个不同则结果为1，否则为0。
2、移位运算符
移位运算符有两个，<<（左移）、>>（右移）。两个 都是双目运算符。
例. 指出下面表达式的功能。
(p&0377)|(k&0xff)<<8
答：将整数p的低字节作为作为结果的低字节，k的低字节作为结果的高字节拼成一个新的整数。