跳转到内容
搜索文档

位函数

最后更新 查看 MarkdownAgent 设置

bitAnd New

用法:

bitAnd(a, b)

bitAnd 返回表达式 ab 的按位与 (AND) 结果。

示例:

-- 执行 0b1 & 0b11
bitAnd(1, 3)
-- 提取 double1 的整数值的最低有效位
bitAnd(toUInt8(double1), 1)

bitCount New

用法:

bitCount(a)

bitCount 返回 a 的二进制表示中设置为 1 的位数。

示例:

-- 获取浮点数 `double1` 的二进制表示中 1 的位数
bitCount(double1)
-- 将 `double1` 作为整数,获取其二进制表示中 1 的位数
bitCount(toUInt32(double1))
-- 选择至少有 5 位为 1 的行
SELECT * WHERE bitCount(double1) > 5

bitHammingDistance New

用法:

bitHammingDistance(x, y)

bitHammingDistance 返回 xy 之间差异的位数。

示例:

-- 返回 0
bitHammingDistance(1, 1)
-- 返回 2
bitHammingDistance(3, 0)

bitNot New

用法:

bitNot(a)

bitNot 返回按位取反(所有位翻转)后的 a

示例:

bitNot(1)

bitOr New

用法:

bitOr(a, b)

bitOr 返回 ab 的按位或 (OR) 结果。

示例:

-- 返回 3
bitOr(1, 2)

bitRotateLeft New

用法:

bitRotateLeft(a, n)

bitRotateLefta 中的所有位向左循环移动 n 位。

示例:

-- 返回 2
bitRotateLeft(1, 1)
-- 返回 1
bitRotateLeft(128, 1)

bitRotateRight New

用法:

bitRotateRight(a, n)

bitRotateRighta 中的所有位向右循环移动 n 位。

示例:

-- 返回 128
bitRotateRight(1, 1)
-- 返回 3
bitRotateRight(12, 2)

bitShiftLeft New

用法:

bitShiftLeft(a, n)

bitShiftLefta 中的所有位向左移动 n 位。

示例:

-- 返回 2
bitShiftLeft(1, 1)
-- 返回 0
bitShiftLeft(128, 1)

bitShiftRight New

用法:

bitShiftRight(a, n)

bitShiftRighta 中的所有位向右移动 n 位。

示例:

-- 返回 0
bitShiftRight(1, 1)
-- 返回 3
bitShiftRight(12, 2)

bitTest New

用法:

bitTest(a, n)

bitTest 返回数字 a 中的第 n 位的值。

示例:

-- 返回 1
bitTest(3, 1)
-- 返回 0
bitTest(2, 1)
-- 选择特定位为 1 的行
SELECT * WHERE bitTest(double1, 2)

bitXor New

用法:

bitXor(a, b)

bitXor 返回 ab 的按位异或 (XOR) 结果。

示例:

-- 返回 3
bitXor(1, 2)
-- 返回 0
bitXor(3, 3)

这篇文档对您有帮助吗?