所以我最近开始使用TI的CC2650设备,并试图通过研究他们的一些示例应用程序来学习如何编程。我看到以这种格式声明了很多变量,我不知道它意味着什么:
var1
在上面的示例中,{{1}}的类型为uint8_t。
答案 0 :(得分:8)
|
是二进制按位or
运算符。例如:0x00ff | 0xff00
为0xffff
。
答案 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。