SQL 按位运算符
InfluxDB 3核心正在进行公开测试
InfluxDB 3 Core 正在进行公开 alpha 测试,并可供测试和反馈,但不适合用于生产环境。产品和本文件都是进行中的工作。我们欢迎并鼓励您分享您对 alpha 版本的体验,并邀请您加入我们的公共频道以获取更新和分享反馈。
按位运算符对位模式或二进制数字执行按位操作。
操作符 | 含义 | |
---|---|---|
& | 按位与 | |
| | 按位或 | |
^ | 按位异或 | |
>> | 按位右移 | |
<< | 位运算左移 |
&
按位与运算符 &
将左操作数的每一位与右操作数的对应位进行比较。
如果两个位都是 1,则对应的结果位设置为 1。
否则,对应的结果位设置为 0。
SELECT 5 & 3
Int64(5) & Int64(3) |
---|
1 |
|
|
(按位或或包含或)运算符将左操作数的每个位与右操作数的相应位进行比较。
如果任一位为1,相应的结果位将被设置为1。
否则,相应的结果位将被设置为0。
SELECT 5 | 3
Int64(5) | Int64(3) |
---|
7 |
^
位运算符 ^
(按位异或或排他或)比较左操作数的每个位与右操作数的对应位。
如果其中一个操作数的位是 0 而另一个操作数的位是 1,
则相应的结果位被设置为 1。
否则,相应的结果位被设置为 0。
SELECT 5 ^ 3
Int64(5) 位异或 Int64(3) |
---|
6 |
>>
>>
(按位右移)运算符将左操作数中的位向右移动,由右操作数中指定的位置数决定。
对于无符号数字,移位操作空出的位填充为0。
对于带符号数字,使用符号位填充空出的位。
如果数字是正数,空出的位填充为0。
如果数字是负数,空出的位填充为1。
SELECT 5 >> 3
Int64(5) >> Int64(3) |
---|
0 |
<<
左移位运算符 <<
将左操作数中的位向左移动,移动的位数由右操作数指定。
移位操作腾出的位被填充为0。
移出末尾的位被丢弃,包括符号位。
SELECT 5 << 3
Int64(5) << Int64(3) |
---|
40 |