1<<5,表示左移五位,结果是100000,因为c语言是从0 计数的,所以后面5个0.对应8位寄存器就是xx100000。(~(1<<5)),表示左移五位再取反,结果是011111.对应8位寄存器就是xx011111。右移是一样的道理。

简单理解:二进制左移几位就是后面加几个0,前面去掉几位.
简单理解:和左移同理,先计算二进制,右移几位就是在二进制的前面加几位(正数加0,负数加1),后面去掉几位。
左移一位相当于乘2,右移一位相当于除2(不完全等同),比除法快
算术左移右移代表保留符号位不动。
逻辑左移右移代表不管符号位,整体做移动。
二者的含义完全不同。
①氧解离曲线右移(可增加氧的利用):PCO2↑、2,3-DPG↑、T↑、pH↓ ②氧解离曲线左移(可减少氧的利用):PCO2↓、2,3-DPG↓、T↓、pH↑ 只要看懂横坐标和竖坐标分别是什么就可以理解了~~
在C语言中,有多种运算符和关键字具有不同的优先级,它们决定了它们在表达式中的运算顺序。以下是C语言中常见的运算符和关键字的优先级:
1. 结合性:单目运算符、乘方运算、乘法和除法运算符具有右结合性,加法和减法运算符具有左结合性。
* 1. 乘方运算、整数除法、取模运算、取整运算、自增自减运算、逻辑非运算、位异或运算、位与运算、位或运算、位取反运算。
* 2. 加法、减法、加法和减法赋值运算。
* 3. 乘法和除法运算符。
* 4. 右移运算符和左移运算符。
* 5. 关系运算符和逻辑运算符。
例如,在表达式`x = y++ + z++`中,首先计算`y++`,然后计算`z++`,最后将它们的和赋值给变量`x`。