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 |
这个页面有帮助吗?
感谢您的反馈!