用法:
bitAnd(a, b)bitAnd 返回表达式 a 和 b 的按位与 (AND) 结果。
示例:
-- 执行 0b1 & 0b11
bitAnd(1, 3)
-- 提取 double1 的整数值的最低有效位
bitAnd(toUInt8(double1), 1)用法:
bitCount(a)bitCount 返回 a 的二进制表示中设置为 1 的位数。
示例:
-- 获取浮点数 `double1` 的二进制表示中 1 的位数
bitCount(double1)
-- 将 `double1` 作为整数,获取其二进制表示中 1 的位数
bitCount(toUInt32(double1))
-- 选择至少有 5 位为 1 的行
SELECT * WHERE bitCount(double1) > 5用法:
bitHammingDistance(x, y)bitHammingDistance 返回 x 和 y 之间差异的位数。
示例:
-- 返回 0
bitHammingDistance(1, 1)
-- 返回 2
bitHammingDistance(3, 0)用法:
bitNot(a)bitNot 返回按位取反(所有位翻转)后的 a。
示例:
bitNot(1)用法:
bitOr(a, b)bitOr 返回 a 和 b 的按位或 (OR) 结果。
示例:
-- 返回 3
bitOr(1, 2)用法:
bitRotateLeft(a, n)bitRotateLeft 将 a 中的所有位向左循环移动 n 位。
示例:
-- 返回 2
bitRotateLeft(1, 1)
-- 返回 1
bitRotateLeft(128, 1)用法:
bitRotateRight(a, n)bitRotateRight 将 a 中的所有位向右循环移动 n 位。
示例:
-- 返回 128
bitRotateRight(1, 1)
-- 返回 3
bitRotateRight(12, 2)用法:
bitShiftLeft(a, n)bitShiftLeft 将 a 中的所有位向左移动 n 位。
示例:
-- 返回 2
bitShiftLeft(1, 1)
-- 返回 0
bitShiftLeft(128, 1)用法:
bitShiftRight(a, n)bitShiftRight 将 a 中的所有位向右移动 n 位。
示例:
-- 返回 0
bitShiftRight(1, 1)
-- 返回 3
bitShiftRight(12, 2)用法:
bitTest(a, n)bitTest 返回数字 a 中的第 n 位的值。
示例:
-- 返回 1
bitTest(3, 1)
-- 返回 0
bitTest(2, 1)
-- 选择特定位为 1 的行
SELECT * WHERE bitTest(double1, 2)用法:
bitXor(a, b)bitXor 返回 a 和 b 的按位异或 (XOR) 结果。
示例:
-- 返回 3
bitXor(1, 2)
-- 返回 0
bitXor(3, 3)