在C中:var = x |是什么y | Z者除外;意思?

时间:2015-08-06 03:07:59

标签: c

所以我最近开始使用TI的CC2650设备,并试图通过研究他们的一些示例应用程序来学习如何编程。我看到以这种格式声明了很多变量,我不知道它意味着什么:

var1

在上面的示例中,{{1}}的类型为uint8_t。

3 个答案:

答案 0 :(得分:8)

|是二进制按位or运算符。例如:0x00ff | 0xff000xffff

答案 1 :(得分:5)

按位OR运算符,所以如果你有x = 5(101)y = 8(1000)和z = 20(10100),括号中的值是二进制值,所以 x | y | z = 101 | 1000 | 10100 = 11101

答案 2 :(得分:1)

C中的运算符|已知为bitwise OR operator。与其他按位运算符(例如 AND &)类似,按位 OR 仅在位级操作。如果其中一个位为1,则其结果为1,仅当两个位均为0时才为零。可以称为管道的|!请看以下内容:

bit a   bit b   a | b (a OR b)
   0       0       0
   0       1       1
   1       0       1
   1       1       1

在表达式中,您提到:

var1 = x | y | z | ...;

由于单个语句中有许多|,您必须知道,按位 OR 运算符具有Left-to-right Associativity表示操作从左侧分组。因此,上述表达式将被解释为:

var1 = (x | y) | z | ...
=> var1 = ((x | y) | z) | ...
....

详细了解Associativity here