数学:按位函数
按位函数是对位模式或二进制数的一元和二元操作。使用按位函数对值进行比较和计算。按位函数只能与数字数据类型一起使用,并将生成int64结果。
重要
如果双精度值/浮点值作为参数提供,它们将被截断为64位整数。负值被视为2的补码64位整数。即,-16和-16.9999被视为0xfffffffffffff0。
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。