Skip to main content

工作流数学:整数函数

整数函数是在单个位的层面上对 1 个或多个位模式或二进制数进行操作。使用整数函数对值进行比较和计算。整数函数只能用于数字数据类型。

重要

如果参数值为 double/float 类型,则会将其截断为 64 位整数。负值被视为二进制补码形式的 64 位整数。也就是说,-16 和 -16.9999 被视为 0xfffffffffffffff0。

BinaryAnd

BinaryAnd(n,m):返回 (n) 和 (m) 的按位“与”(AND)。如果 n 和 m 均为 1,则结果为 1,否则为 0。如果将 0 等同于 False,将 1 等同于 True,则 BinaryAnd 运算的效果与逻辑 AND 相同。注意结果值中没有小数点。结果为整数,而非浮点值。

示例

BinaryAnd(1,1)返回 1。

BinaryAnd(1,0)返回 0。

BinaryAnd(12,6)返回 4。

BinaryAnd(12.99, 6.99)返回 4。

BinaryAnd(-12, 6.99)返回 4。

BinaryNot

BinaryNot(n):返回 (n) 的按位取反(NOT)。数字被视为 64 位二进制补码数。

示例

BinaryNot(6)返回 -7。

BinaryNot(2)返回 -3。

BinaryNot(-1)返回 0。

BinaryNot(0)返回 -1。

BinaryOr

BinaryOr(n,m):返回 (n) 和 (m) 的按位“或”(OR)。

示例

BinaryOr(6,6)返回 6。

BinaryOr(6,2)返回 6。

BinaryOr(4,2)返回 6。

BinaryOr(12,6)返回 14。

BinaryXOr

BinaryXOr(n,m):返回 (n) 和 (m) 的按位“异或”(XOR)。

示例

BinaryXOr(6,6)返回 0。

BinaryXOr(6,2)返回 4。

BinaryXOr(6,12)返回 10。

ShiftLeft

ShiftLeft(n,b):将 (n)(整数)左移 (b) 位。

ShiftRight

ShiftRight(n,b):将 (n)(整数)右移 (b) 位。

ShiftLeft 和 ShiftRight 的结果都是 Int64 类型,因此只有 64 位可用。

示例

ShiftLeft(pow(2,62),1) 返回 -pow(2,63)。再左移一次,结果为零。

ShiftRight(1,1)返回零。

ShiftRight(-1,1)返回 Int64_Max