工作流数学:整数函数
整数函数是在单个位的层面上对 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。