SQL 位操作符
位操作符对位模式或二进制数执行位运算。
操作符 | 含义 | |
---|---|---|
& | 位与 | |
| | 位或 | |
^ | 位异或 | |
>> | 位右移 | |
<< | 位左移 |
&
代码 &
(位与) 操作符将左操作数的每个位与右操作数的相应位进行比较。如果两个位都是 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) BIT_XOR Int64(3) |
---|
6 |
>>
代码 >>
(位右移) 操作符将左操作数的位向右移动由右操作数指定的位数。对于无符号数,右移操作中空出的位位置用 0 填充。对于有符号数,使用符号位来填充空出的位位置。如果是正数,则位位置用 0 填充。如果是负数,则位位置用 1 填充。
SELECT 5 >> 3
Int64(5) >> Int64(3) |
---|
0 |
<<
代码 <<
(位左移) 操作符将左操作数的位向左移动由右操作数指定的位数。右移操作中空出的位位置用 0 填充。超出末端的位被丢弃,包括符号位。
SELECT 5 << 3
Int64(5) << Int64(3) |
---|
40 |
这个页面有帮助吗?
感谢您的反馈!