-- 位运算示例代码
-- 1. 位与 (&)
-- 位与运算会逐位比较两个操作数,只有当两个操作数的对应位都为1时,结果才为1。
SELECT 5 & 3; -- 结果为 1 (二进制: 101 & 011 = 001)
-- 2. 位或 (|)
-- 位或运算会逐位比较两个操作数,只要有一个操作数的对应位为1,结果就为1。
SELECT 5 | 3; -- 结果为 7 (二进制: 101 | 011 = 111)
-- 3. 位异或 (^)
-- 位异或运算会逐位比较两个操作数,只有当两个操作数的对应位不同时,结果才为1。
SELECT 5 ^ 3; -- 结果为 6 (二进制: 101 ^ 011 = 110)
-- 4. 位取反 (~)
-- 位取反运算会将操作数的每一位取反,即0变为1,1变为0。
SELECT ~5; -- 结果为 -6 (二进制: 取反后加上1得到补码)
-- 5. 左移 (<<)
-- 左移运算会将操作数的二进制表示向左移动指定的位数,右边用0填充。
SELECT 5 << 1; -- 结果为 10 (二进制: 101 << 1 = 1010)
-- 6. 右移 (>>)
-- 右移运算会将操作数的二进制表示向右移动指定的位数,左边用符号位填充。
SELECT 5 >> 1; -- 结果为 2 (二进制: 101 >> 1 = 010)
&
):用于检查两个操作数的对应位是否都为1。|
):用于设置两个操作数中任意一个为1的位。^
):用于翻转两个操作数中不同的位。~
):用于将所有位取反,通常用于反转标志位。<<
):用于将位向左移动,相当于乘以2的幂。>>
):用于将位向右移动,相当于除以2的幂。这些位运算符在MySQL中可以用于高效的位操作,特别是在处理标志位、权限管理等场景。
上一篇:mysql deadlock
下一篇:mysql获取所有表名
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站