適用於: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 二進位位元運算子。