共用方式為


適用於 NoSQL 的 Azure Cosmos DB 中的位運算符

適用於:NoSQL

本文會詳細說明 Azure Cosmos DB 支援的位元運算子。 位元運算子可用於即時建構 JSON 結果集。 位元運算子的運作方式類似於較高層級的程式設計語言,例如 C# 和 JavaScript。 如需 C# 位元運算子的範例,請參閱位元和移位運算子

了解位元運算

下表顯示兩個值之間 NoSQL API 中位作業的說明和範例。

行動 操作員 說明
向左移位 << 以指定的位元數,將左側值左移
向右移位 >> 以指定的位元數,將左側值右移
無填滿 (不帶正負號) 右移位 >>> 以指定的位元數,將左側值向右移,而不填滿最左邊的位元。
& 計算位元運算子邏輯 AND。
| 計算位元運算子邏輯 OR。
XOR ^ 計算位元運算子邏輯專屬 OR。

例如,下列查詢會使用每個位元運算子,並轉譯結果。

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
  }
]

這很重要

適用於 NoSQL 的 Azure Cosmos DB 中的位運算子會遵循與 JavaScript 中的位運算符相同的行為。 JavaScript 會將數字儲存為 64 位元浮點數,但所有位元運算都會以 32 位元二進位數字執行。 在執行位元運算之前,JavaScript 會將數位轉換成 32 位元帶正負號的整數。 執行位元運算之後,結果會轉換回 64 位元的 JavaScript 數字。 如需有關 JavaScript 中位元運算子的詳細資訊,請參閱 MDN Web Docs 上的 JavaScript 二進位位元運算子