Azure Cosmos DB for NoSQL 中的位运算符

适用范围: NoSQL

本文详细介绍了 Azure Cosmos DB 支持的位运算符。 位运算符对于动态构建 JSON 结果集非常有用。 位运算符的工作方式类似于 C# 和 JavaScript 等高级编程语言。 有关 C# 位运算符的示例,请参阅位和移位运算符

了解位运算

下表显示了 API for NoSQL 中两个值之间位运算的说明和示例。

操作 运算符 说明
左移 << 将左侧值向左移动指定的位数。
右移 >> 将左侧值向右移动指定的位数。
零填充(无符号)右移 >>> 将左侧值向右移动指定的位数,而不填充最左侧的位。
AND & 计算按位逻辑与。
或者 | 计算按位逻辑或。
XOR ^ 计算按位逻辑异或。

例如,以下查询使用每个位运算符并呈现结果。

SELECT 
    (100 >> 2) AS rightShift,
    (100 << 2) AS leftShift,
    (100 >>> 0) AS zeroFillRightShift,
    (100 & 1000) AS logicalAnd,
    (100 | 1000) AS logicalOr,
    (100 ^ 1000) AS logicalExclusiveOr

示例查询的结果为 JSON 对象。

[
  {
    "rightShift": 25,
    "leftShift": 400,
    "zeroFillRightShift": 100,
    "logicalAnd": 96,
    "logicalOr": 1004,
    "logicalExclusiveOr": 908
  }
]

重要

Azure Cosmos DB for NoSQL 中的位运算符与 JavaScript 中的位运算符保持相同的行为。 JavaScript 将数字存储为 64 位浮点数,但所有位运算都对 32 位二进制数执行。 在执行位运算之前,JavaScript 会将数字转换为 32 位带符号整数。 执行位运算后,结果将转换为 64 位 JavaScript 数字。 有关 JavaScript 中的位运算符的详细信息,请参阅 MDN Web Docs 上的 JavaScript 二进制位运算符