C语言中|和<<是什么意思怎样计算的,运算符优先顺序是什么样的
时间: 2024-10-08 18:09:14 浏览: 44
C语言中的运算符和表达式
在C语言中,`|` 是位或运算符,它用于逐位地比较两个整数,如果对应位置上一个是1,另一个也是1,则结果中的该位置设为1;其余位置保持不变。例如:
```c
int a = 5; // binary: 0101
int b = 3; // binary: 0011
int c = a | b; // binary: 0111 (a和b对应的1变为1)
```
而 `<<` 是左移运算符,它将二进制表示的数向左移动指定的位数,左边空出的位会被补0。例如:
```c
int d = 4; // binary: 0100
int e = d << 2; // binary: 1000 (d的每一位都向左移动两位)
```
C语言的运算符优先级从高到低大致如下:
1. 括号 ()
2. 算术运算符(如 +, -, *, /, %)
3. 赋值运算符(=, +=, -=, *=, /=)
4. 关系运算符(>, <, ==, !=, >=, <=)
5. 逻辑非 (!)
6. 逻辑与 (&)
7. 逻辑或 (|)
8. 位与 (&)
9. 左移 (<<), 右移 (>>)
10. 条件运算符 (?:)
当遇到优先级相同的运算符时,可以按照它们从左到右的顺序依次计算。不过,对于算术、关系和逻辑运算符,还有特定的结合性规则。
阅读全文