Skip to main content

数学:按位函数

按位函数是对位模式或二进制数的一元和二元操作。使用按位函数对值进行比较和计算。按位函数只能与数字数据类型一起使用,并将生成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。