From 79e682a459820619ab4b2b371ea0a665ad588ca5 Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Tue, 28 Sep 2021 01:22:59 +0900 Subject: ビット演算子の文書を更新 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 2021/07/21 時点の英語版に同期 --- .../reference/operators/bitwise_and/index.md | 149 ++++++++------------- .../reference/operators/bitwise_not/index.md | 111 ++++++--------- .../reference/operators/bitwise_or/index.md | 149 ++++++++------------- .../reference/operators/bitwise_xor/index.md | 149 ++++++++------------- .../reference/operators/left_shift/index.md | 78 +++++------ .../reference/operators/right_shift/index.md | 84 +++++------- .../operators/unsigned_right_shift/index.md | 86 +++++------- 7 files changed, 318 insertions(+), 488 deletions(-) (limited to 'files/ja/web') diff --git a/files/ja/web/javascript/reference/operators/bitwise_and/index.md b/files/ja/web/javascript/reference/operators/bitwise_and/index.md index 3d9615a528..dc691cf4e6 100644 --- a/files/ja/web/javascript/reference/operators/bitwise_and/index.md +++ b/files/ja/web/javascript/reference/operators/bitwise_and/index.md @@ -2,111 +2,76 @@ title: ビット論理積 (&) slug: Web/JavaScript/Reference/Operators/Bitwise_AND tags: - - Bitwise operator + - ビット演算子 - JavaScript - - Language feature - - Operator - - Reference - - 演算子 - 言語機能 + - 演算子 + - Reference +browser-compat: javascript.operators.bitwise_and translation_of: Web/JavaScript/Reference/Operators/Bitwise_AND --- -
{{jsSidebar("Operators")}}
- -

ビット論理積演算子 (&) は、両方のオペランドの対応するビットのいずれもが 1 である位置のビットで 1 を返します。

- -
{{EmbedInteractiveExample("pages/js/expressions-bitwise-and.html")}}
- - - -

構文

- -
a & b
-
- -

解説

- -

オペランドは32ビットの整数値に変換され、ビット (ゼロまたは1) の並びによって表現されます。32ビットを超える数値は最上位のビットが破棄されます。例えば、次の32ビットを超える整数は32ビット整数に変換されます。

- -
変換前: 11100110111110100000000000000110000000000001
-変換後:             10100000000000000110000000000001
- -

第1オペランドの各ビットは、第2オペランドの対応するビットと組み合わせになります。第1ビット第1ビットへ、第2ビット第2ビットへ、という具合にです。

- -

この演算子は各ビットの組み合わせに適用され、結果はビット単位で構築されます。

- -

AND 演算の真理値表は次のようになります。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
aba AND b
000
010
100
111
- -
.    9 (10進数) = 00000000000000000000000000001001 (2進数)
-    14 (10進数) = 00000000000000000000000000001110 (2進数)
+{{jsSidebar("Operators")}}
+
+ビット論理積演算子 (`&`) は、両方のオペランドの対応するビットのいずれもが `1` である位置のビットで `1` を返します。
+
+{{EmbedInteractiveExample("pages/js/expressions-bitwise-and.html")}}
+
+## 構文
+
+```js
+a & b
+```
+
+## 解説
+
+オペランドは 32 ビットの整数値に変換され、ビット (ゼロまたは 1) の並びによって表現されます。32 ビットを超える数値は最上位のビットが破棄されます。例えば、次の 32 ビットを超える整数は 32 ビット整数に変換されます。
+
+```js
+変換前: 11100110111110100000000000000110000000000001
+変換後:             10100000000000000110000000000001
+```
+
+第 1 オペランドの各ビットは、第 2 オペランドの対応するビットと組みになります。*第 1 ビット*は*第 1 ビット*へ、*第 2 ビット*は*第 2 ビット*へ、という具合にです。
+
+この演算子は各ビットの組み合わせに適用され、結果はビット単位で構築されます。
+
+AND 演算の真理値表は次のようになります。
+
+| a   | b   | a AND b |
+| --- | --- | ------- |
+| 0   | 0   | 0       |
+| 0   | 1   | 0       |
+| 1   | 0   | 0       |
+| 1   | 1   | 1       |
+
+```js
+.    9 (10 進数) = 00000000000000000000000000001001 (2 進数)
+    14 (10 進数) = 00000000000000000000000000001110 (2 進数)
                    --------------------------------
-14 | 9 (10進数) = 00000000000000000000000000001000 (2進数) = 8 (10進数)
-
+14 & 9 (10 進数) = 00000000000000000000000000001000 (2 進数) = 8 (10 進数) +``` -

任意の x0 のビット論理積は 0 になります。

+任意の `x` と `0` のビット論理積は `0` になります。 -

+## 例 -

ビット論理積の使用

+### ビット論理積の使用 -
// 5: 00000000000000000000000000000101
+```js
+// 5: 00000000000000000000000000000101
 // 2: 00000000000000000000000000000010
-5 & 2; // 0
+5 & 2; // 0 +``` -

仕様書

+## 仕様書 - - - - - - - - - - - -
仕様書
{{SpecName('ESDraft', '#prod-BitwiseANDExpression', 'Bitwise AND expression')}}
+{{Specifications}} -

ブラウザーの互換性

+## ブラウザーの互換性 -

{{Compat("javascript.operators.bitwise_and")}}

+{{Compat}} -

関連情報

+## 関連情報 - +- [ビット演算子 (JavaScript ガイド)](/ja/docs/Web/JavaScript/Guide/Expressions_and_Operators#bitwise) +- [ビット論理積代入演算子](/ja/docs/Web/JavaScript/Reference/Operators/Bitwise_AND_assignment) diff --git a/files/ja/web/javascript/reference/operators/bitwise_not/index.md b/files/ja/web/javascript/reference/operators/bitwise_not/index.md index ddd2d99c4d..3ff4b8e44c 100644 --- a/files/ja/web/javascript/reference/operators/bitwise_not/index.md +++ b/files/ja/web/javascript/reference/operators/bitwise_not/index.md @@ -2,101 +2,74 @@ title: ビット否定 (~) slug: Web/JavaScript/Reference/Operators/Bitwise_NOT tags: - - Bitwise operator + - ビット演算子 - JavaScript - - Language feature - - Operator - - Reference - - 演算子 - 言語機能 + - 演算子 + - Reference +browser-compat: javascript.operators.bitwise_not translation_of: Web/JavaScript/Reference/Operators/Bitwise_NOT --- -
{{jsSidebar("Operators")}}
- -

ビット否定演算子 (~) は、オペランドの各ビットを反転します。

- -
{{EmbedInteractiveExample("pages/js/expressions-bitwise-not.html")}}
+{{jsSidebar("Operators")}} -
+ビット否定演算子 (`~`) は、オペランドの各ビットを反転します。他のビット演算子と同様、オペランドを 32 ビット符号付き整数に変換します。 +{{EmbedInteractiveExample("pages/js/expressions-bitwise-not.html")}} +## 構文 -

構文

+```js +~a +``` -
~a
-
+## 解説 -

解説

+オペランドは 32 ビットの整数値に変換され、ビット (ゼロまたは 1) の並びによって表現されます。32 ビットを超える数値は最上位のビットが破棄されます。例えば、次の 32 ビットを超える整数は 32 ビット整数に変換されます。 -

オペランドは32ビットの整数値に変換され、ビット (ゼロまたは1) の並びによって表現されます。32ビットを超える数値は最上位のビットが破棄されます。例えば、次の32ビットを超える整数は32ビット整数に変換されます。

+```js +変換前: 11100110111110100000000000000110000000000001 +変換後: 10100000000000000110000000000001 +``` -
変換前: 11100110111110100000000000000110000000000001
-変換後:             10100000000000000110000000000001
+オペランドの各ビットが反転されて結果になります。 -

第1オペランドの各ビットは、第2オペランドの対応するビットと組み合わせになります。第1ビット第1ビットへ、第2ビット第2ビットへ、という具合にです。

+`NOT` 演算の真理値表は次のようになります。 -

この演算子は各ビットの組み合わせに適用され、結果はビット単位に構築されます。

+| a | NOT a | +| --- | ----- | +| 0 | 1 | +| 1 | 0 | -

NOT 演算の真理値表は次のようになります。

- - - - - - - - - - - - - - - - - - -
aNOT a
01
10
- -
 9 (10進数) = 00000000000000000000000000001001 (2進数)
+```js
+ 9 (10 進数) = 00000000000000000000000000001001 (2 進数)
                --------------------------------
-~9 (10進数) = 11111111111111111111111111110110 (2進数) = -10 (10進数)
-
+~9 (10 進数) = 11111111111111111111111111110110 (2 進数) = -10 (10 進数) +``` + +32 ビット符号付き整数のオペランドは、[2 の補数](https://ja.wikipedia.org/wiki/2%E3%81%AE%E8%A3%9C%E6%95%B0)によって反転されます。すなわち、最上位ビットが負の数であることを表します。 -

ある数 x のビット否定 は -(x + 1) になります。例えば、~-5 は 4 になります。

+ある数 `x` のビット否定 は `-(x + 1)` になります。例えば、`~-5` は `4` になります。 -

数値に32ビット表現を使用するため ~-1 および ~4294967295 (232-1) はいずれも 0 になることに注意してください。

+数値に 32 ビット表現を使用するため `~-1` および `~4294967295` (2^32 - 1) はいずれも `0` になることに注意してください。 -

+## 例 -

ビット否定の使用

+### ビット否定の使用 -
~0;  // -1
+```js
+~0;  // -1
 ~-1; // 0
 ~1;  // -2
-
- -

仕様

- - - - - - - - - - -
仕様書
{{SpecName('ESDraft', '#sec-unary-operators', 'Unary NOT expression')}}
+``` -

ブラウザーの互換性

+## 仕様書 +{{Specifications}} +## ブラウザーの互換性 -

{{Compat("javascript.operators.bitwise_not")}}

+{{Compat}} -

関連情報

+## 関連情報 - +- [ビット演算子 (JavaScript ガイド)](/ja/docs/Web/JavaScript/Guide/Expressions_and_Operators#bitwise) diff --git a/files/ja/web/javascript/reference/operators/bitwise_or/index.md b/files/ja/web/javascript/reference/operators/bitwise_or/index.md index d19e7be3bf..95167c0c42 100644 --- a/files/ja/web/javascript/reference/operators/bitwise_or/index.md +++ b/files/ja/web/javascript/reference/operators/bitwise_or/index.md @@ -2,113 +2,78 @@ title: ビット論理和 (|) slug: Web/JavaScript/Reference/Operators/Bitwise_OR tags: - - Bitwise operator + - ビット演算子 - JavaScript - - Language feature - - Operator - - Reference - - 演算子 - 言語機能 + - 演算子 + - Reference +browser-compat: javascript.operators.bitwise_or translation_of: Web/JavaScript/Reference/Operators/Bitwise_OR --- -
{{jsSidebar("Operators")}}
- -

ビット論理和演算子 (|) は、両方のオペランドの対応するビットのどちらか一方が 1 である位置のビットで 1 を返します。

- -
{{EmbedInteractiveExample("pages/js/expressions-bitwise-or.html")}}
- - - -

構文

- -
a | b
-
- -

解説

- -

オペランドは32ビットの整数値に変換され、ビット (ゼロまたは1) の並びによって表現されます。32ビットを超える数値は最上位のビットが破棄されます。例えば、次の32ビットを超える整数は32ビット整数に変換されます。

- -
変換前: 11100110111110100000000000000110000000000001
-変換後:             10100000000000000110000000000001
- -

第1オペランドの各ビットは、第2オペランドの対応するビットと組み合わせになります。第1ビット第1ビットへ、第2ビット第2ビットへ、という具合にです。

- -

この演算子は各ビットの組み合わせに適用され、結果はビット単位で構築されます。

- -

OR 演算の真理値表は次のようになります。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
aba OR b
000
011
101
111
- -
.    9 (10進数) = 00000000000000000000000000001001 (2進数)
-    14 (10進数) = 00000000000000000000000000001110 (2進数)
+{{jsSidebar("Operators")}}
+
+ビット論理和演算子 (`|`) は、両方のオペランドの対応するビットのどちらか一方が `1` である位置のビットで `1` を返します。
+
+{{EmbedInteractiveExample("pages/js/expressions-bitwise-or.html")}}
+
+## 構文
+
+```js
+a | b
+```
+
+## 解説
+
+オペランドは 32 ビットの整数値に変換され、ビット (ゼロまたは 1) の並びによって表現されます。32 ビットを超える数値は最上位のビットが破棄されます。例えば、次の 32 ビットを超える整数は 32 ビット整数に変換されます。
+
+```js
+変換前: 11100110111110100000000000000110000000000001
+変換後:             10100000000000000110000000000001
+```
+
+第 1 オペランドの各ビットは、第 2 オペランドの対応するビットと組みになります。*第 1 ビット*は*第 1 ビット*へ、*第 2 ビット*は*第 2 ビット*へ、という具合にです。
+
+この演算子は各ビットの組み合わせに適用され、結果はビット単位で構築されます。
+
+OR 演算の真理値表は次のようになります。
+
+| a   | b   | a OR b |
+| --- | --- | ------ |
+| 0   | 0   | 0      |
+| 0   | 1   | 1      |
+| 1   | 0   | 1      |
+| 1   | 1   | 1      |
+
+```js
+.    9 (10 進数) = 00000000000000000000000000001001 (2 進数)
+    14 (10 進数) = 00000000000000000000000000001110 (2 進数)
                    --------------------------------
-14 | 9 (10進数) = 00000000000000000000000000001111 (2進数) = 15 (10進数)
-
+14 | 9 (10 進数) = 00000000000000000000000000001111 (2 進数) = 15 (10 進数) +``` -

ある数 x0 のビット論理和は x になります。

+ある数 `x` と `0` のビット論理和は `x` になります。 -

+## 例 -

ビット論理和の使用

+### ビット論理和の使用 -
// 9  (00000000000000000000000000001001)
+```js
+// 9  (00000000000000000000000000001001)
 // 14 (00000000000000000000000000001110)
 
 14 | 9;
-// 15 (00000000000000000000000000001111)
+// 15 (00000000000000000000000000001111) +``` -

仕様

+## 仕様書 - - - - - - - - - - - -
仕様書
{{SpecName('ESDraft', '#prod-BitwiseORExpression', 'Bitwise OR expression')}}
+{{Specifications}} -

ブラウザーの互換性

+## ブラウザーの互換性 -

{{Compat("javascript.operators.bitwise_or")}}

+{{Compat}} -

関連情報

+## 関連情報 - +- [ビット演算子 (JavaScript ガイド)](/ja/docs/Web/JavaScript/Guide/Expressions_and_Operators#bitwise) +- [ビット論理和代入演算子](/ja/docs/Web/JavaScript/Reference/Operators/Bitwise_OR_assignment) diff --git a/files/ja/web/javascript/reference/operators/bitwise_xor/index.md b/files/ja/web/javascript/reference/operators/bitwise_xor/index.md index 684a987458..904bffe61d 100644 --- a/files/ja/web/javascript/reference/operators/bitwise_xor/index.md +++ b/files/ja/web/javascript/reference/operators/bitwise_xor/index.md @@ -2,113 +2,78 @@ title: ビット排他的論理和 (^) slug: Web/JavaScript/Reference/Operators/Bitwise_XOR tags: - - Bitwise operator + - ビット演算子 - JavaScript - - Language feature - - Operator - - Reference - - 演算子 - 言語機能 + - 演算子 + - Reference +browser-compat: javascript.operators.bitwise_xor translation_of: Web/JavaScript/Reference/Operators/Bitwise_XOR --- -
{{jsSidebar("Operators")}}
- -

ビット排他的論理和演算子 (^) は、両方のオペランドの対応するビットの一方だけが 1 である位置のビットで 1 を返します。

- -
{{EmbedInteractiveExample("pages/js/expressions-bitwise-xor.html")}}
- - - -

構文

- -
a ^ b
-
- -

解説

- -

オペランドは32ビットの整数値に変換され、ビット (ゼロまたは1) の並びによって表現されます。32ビットを超える数値は最上位のビットが破棄されます。例えば、次の32ビットを超える整数は32ビット整数に変換されます。

- -
変換前: 11100110111110100000000000000110000000000001
-変換後:             10100000000000000110000000000001
- -

第1オペランドの各ビットは、第2オペランドの対応するビットと組み合わせになります。第1ビット第1ビットへ、第2ビット第2ビットへ、という具合にです。

- -

この演算子は各ビットの組み合わせに適用され、結果はビット単位に構築されます。

- -

XOR 演算の真理値表は次のようになります。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
aba XOR b
000
011
101
110
- -
.    9 (10進数) = 00000000000000000000000000001001 (2進数)
-    14 (10進数) = 00000000000000000000000000001110 (2進数)
+{{jsSidebar("Operators")}}
+
+ビット排他的論理和演算子 (`^`) は、両方のオペランドの対応するビットの一方だけが `1` である位置のビットで `1` を返します。
+
+{{EmbedInteractiveExample("pages/js/expressions-bitwise-xor.html")}}
+
+## 構文
+
+```js
+a ^ b
+```
+
+## 解説
+
+オペランドは 32 ビットの整数値に変換され、ビット (ゼロまたは 1) の並びによって表現されます。32 ビットを超える数値は最上位のビットが破棄されます。例えば、次の 32 ビットを超える整数は 32 ビット整数に変換されます。
+
+```js
+変換前: 11100110111110100000000000000110000000000001
+変換後:             10100000000000000110000000000001
+```
+
+第 1 オペランドの各ビットは、第 2 オペランドの対応するビットと組みになります。*第 1 ビット*は*第 1 ビット*へ、*第 2 ビット*は*第 2 ビット*へ、という具合にです。
+
+この演算子は各ビットの組み合わせに適用され、結果はビット単位で構築されます。
+
+XOR 演算の真理値表は次のようになります。
+
+| a   | b   | a XOR b |
+| --- | --- | ------- |
+| 0   | 0   | 0       |
+| 0   | 1   | 1       |
+| 1   | 0   | 1       |
+| 1   | 1   | 0       |
+
+```js
+     9 (10 進数) = 00000000000000000000000000001001 (2 進数)
+    14 (10 進数) = 00000000000000000000000000001110 (2 進数)
                    --------------------------------
-14 ^ 9 (10進数) = 00000000000000000000000000000111 (2進数) = 7 (10進数)
-
+14 ^ 9 (10 進数) = 00000000000000000000000000000111 (2 進数) = 7 (10 進数) +``` -

ある数 x0 のビット排他的論理和は x になります。

+ある数 `x` と `0` のビット排他的論理和は `x` になります。 -

+## 例 -

ビット排他的論理和の使用

+### ビット排他的論理和の使用 -
// 9  (00000000000000000000000000001001)
+```js
+// 9  (00000000000000000000000000001001)
 // 14 (00000000000000000000000000001110)
 
 14 ^ 9;
-// 7  (00000000000000000000000000000111)
+// 7 (00000000000000000000000000000111) +``` -

仕様

+## 仕様書 - - - - - - - - - - - -
仕様書
{{SpecName('ESDraft', '#prod-BitwiseXORExpression', 'Bitwise XOR expression')}}
+{{Specifications}} -

ブラウザーの互換性

+## ブラウザーの互換性 -

{{Compat("javascript.operators.bitwise_xor")}}

+{{Compat}} -

関連情報

+## 関連情報 - +- [ビット演算子 (JavaScript ガイド)](/ja/docs/Web/JavaScript/Guide/Expressions_and_Operators#bitwise) +- [ビット排他的論理和代入演算子](/ja/docs/Web/JavaScript/Reference/Operators/Bitwise_XOR_assignment) diff --git a/files/ja/web/javascript/reference/operators/left_shift/index.md b/files/ja/web/javascript/reference/operators/left_shift/index.md index e0f494ba5a..0e8b1420a8 100644 --- a/files/ja/web/javascript/reference/operators/left_shift/index.md +++ b/files/ja/web/javascript/reference/operators/left_shift/index.md @@ -2,74 +2,60 @@ title: 左シフト (<<) slug: Web/JavaScript/Reference/Operators/Left_shift tags: - - Bitwise operator - - JavaScript - - Language feature - - Operator - - Reference - ビット演算子 - - 演算子 + - JavaScript - 言語機能 + - 演算子 + - Reference +browser-compat: javascript.operators.left_shift translation_of: Web/JavaScript/Reference/Operators/Left_shift --- -
{{jsSidebar("Operators")}}
- -

左シフト演算子 (<<)は、1つ目のオペランドを指定されたビット数だけ左にずらします。左にずらしてあふれたビットは廃棄されます。0のビットが右からずれて入ります。

+{{jsSidebar("Operators")}} -
{{EmbedInteractiveExample("pages/js/expressions-left-shift.html")}}
+**左シフト演算子 (`<<`)** は、1 つ目のオペランドを指定されたビット数だけ左にずらします。左にずらしてあふれたビットは廃棄されます。0 のビットが右からずれて入ります。 - +{{EmbedInteractiveExample("pages/js/expressions-left-shift.html")}} -

構文

+## 構文 -
a << b
-
+```js +a << b +``` -

解説

+## 解説 -

この演算子は、1つ目のオペランドを指定されたビット数だけ左にずらします。左にずらしてあふれたビットは廃棄されます。0のビットが右からずれて入ります。

+この演算子は、1 つ目のオペランドを指定されたビット数だけ左にずらします。左にずらしてあふれたビットは廃棄されます。 0 のビットが右からずれて入ります。 -

例えば 9 << 2 は 36 になります。

+例えば `9 << 2` は 36 になります。 -
.    9 (10進数): 00000000000000000000000000001001 (2進数)
+```js
+.    9 (10 進数): 00000000000000000000000000001001 (2 進数)
                   --------------------------------
-9 << 2 (10進数): 00000000000000000000000000100100 (2進数) = 36 (10進数)
-
+9 << 2 (10 進数): 00000000000000000000000000100100 (2 進数) = 36 (10 進数) +``` -

任意の数 xy ビット分だけ左にビット単位にずらすと、 x * 2 ** y になります。
- ですから、例えば 9 << 39 * (2 ** 3) = 9 * (8) = 72 になります。

+任意の数 `x` を `y` ビット分だけ左にビット単位にずらすと、 `x * 2 ** y` になります。 + ですから、例えば `9 << 3` は `9 * (2 ** 3) = 9 * (8) = 72` になります。 -

+## 例 -

左シフトの使用

+### 左シフトの使用 -
9 << 3; // 72
+```js
+9 << 3; // 72
 
 // 9 * (2 ** 3) = 9 * (8) = 72
-
+``` -

仕様書

+## 仕様書 - - - - - - - - - - - -
仕様書
{{SpecName('ESDraft', '#sec-bitwise-shift-operators', 'Bitwise Shift Operators')}}
+{{Specifications}} -

ブラウザーの互換性

+## ブラウザーの互換性 -

{{Compat("javascript.operators.left_shift")}}

+{{Compat}} -

関連情報

+## 関連情報 - +- [ビット演算子 (JavaScript ガイド)](/ja/docs/Web/JavaScript/Guide/Expressions_and_Operators#bitwise) +- [左シフト代入演算子](/ja/docs/Web/JavaScript/Reference/Operators/Left_shift_assignment) diff --git a/files/ja/web/javascript/reference/operators/right_shift/index.md b/files/ja/web/javascript/reference/operators/right_shift/index.md index fa01116c74..ced5e93c2b 100644 --- a/files/ja/web/javascript/reference/operators/right_shift/index.md +++ b/files/ja/web/javascript/reference/operators/right_shift/index.md @@ -2,76 +2,64 @@ title: 右シフト (>>) slug: Web/JavaScript/Reference/Operators/Right_shift tags: - - Bitwise operator + - ビット演算子 - JavaScript - - Language feature - - Operator - - Reference - - 演算子 - 言語機能 + - 演算子 + - Reference +browser-compat: javascript.operators.right_shift translation_of: Web/JavaScript/Reference/Operators/Right_shift --- -
{{jsSidebar("Operators")}}
- -

右シフト演算子 (>>) (ゼロ埋め右シフト) は、1つ目のオペランドを指定されたビット数だけ右にずらします。右にずらしてあふれたビットは廃棄されます。最も左のビットをコピーしながらずれて入ります。最も左のビットが以前の最も左のビットと同じになるため、符号ビット (最も左のビット) は変化しません。よって「符号維持」という名前です。

+{{jsSidebar("Operators")}} -
{{EmbedInteractiveExample("pages/js/expressions-right-shift.html")}}
+**右シフト演算子 (`>>`)** は、1つ目のオペランドを指定されたビット数だけ右にずらします。右にずらしてあふれたビットは廃棄されます。最も左のビットをコピーしながらずれて入ります。最も左のビットが以前の最も左のビットと同じになるため、符号ビット (最も左のビット) は変化しません。よって「符号維持」という名前です。 - +{{EmbedInteractiveExample("pages/js/expressions-right-shift.html")}} -

構文

+## 構文 -
a >> b
-
+```js +a >> b +``` -

解説

+## 解説 -

この演算子は、1つ目のオペランドを指定されたビット数だけ右にずらします。右にずらしてあふれたビットは廃棄されます。最も左のビットをコピーしながらずれて入ります。最も左のビットが以前の最も左のビットと同じになるため、符号ビット (最も左のビット) は変化しません。よって「符号維持」という名前です。

+この演算子は、1 つ目のオペランドを指定されたビット数だけ右にずらします。右にずらしてあふれたビットは廃棄されます。最も左のビットをコピーしながらずれて入ります。最も左のビットが以前の最も左のビットと同じになるため、符号ビット (最も左のビット) は変化しません。よって「符号維持」という名前です。 -

例えば、 9 >>> 2 は 2 となります。

+例えば、 `9 >> 2` は 2 となります。 -
.     9 (10進数): 00000000000000000000000000001001 (2進数)
+```js
+.    9 (10 進数): 00000000000000000000000000001001 (2 進数)
                   --------------------------------
-9 >>> 2 (10進数): 00000000000000000000000000000010 (2進数) = 2 (10進数)
-
+9 >> 2 (10 進数): 00000000000000000000000000000010 (2 進数) = 2 (10 進数) +``` -

同様に、 -9 >> 2 は符号が保存されるため、 -3 になります。

+同様に、 `-9 >> 2` は符号が保存されるため、 `-3` になります。 -
.     -9 (10進数): 11111111111111111111111111110111 (2進数)
+```js
+.    -9 (10 進数): 11111111111111111111111111110111 (2 進数)
                    --------------------------------
--9 >> 2 (10進数):  11111111111111111111111111111101 (2進数) = -3 (10進数)
-
+-9 >> 2 (10 進数): 11111111111111111111111111111101 (2 進数) = -3 (10 進数) +``` -

+## 例 -

右シフトの使用

+### 右シフトの使用 -
 9 >> 2; //  2
--9 >> 2; // -3
-
+```js + 9 >> 2; // 2 +-9 >> 2; // -3 +``` -

仕様書

+## 仕様書 - - - - - - - - - - - -
仕様書
{{SpecName('ESDraft', '#sec-bitwise-shift-operators', 'Bitwise Shift Operators')}}
+{{Specifications}} -

ブラウザーの互換性

+## ブラウザーの互換性 -

{{Compat("javascript.operators.right_shift")}}

+{{Compat}} -

関連情報

+## 関連情報 - +- [ビット演算子 (JavaScript ガイド)](/ja/docs/Web/JavaScript/Guide/Expressions_and_Operators#bitwise) +- [右シフト代入演算子](/ja/docs/Web/JavaScript/Reference/Operators/Right_shift_assignment) diff --git a/files/ja/web/javascript/reference/operators/unsigned_right_shift/index.md b/files/ja/web/javascript/reference/operators/unsigned_right_shift/index.md index 7e0c7aa258..564f0c257d 100644 --- a/files/ja/web/javascript/reference/operators/unsigned_right_shift/index.md +++ b/files/ja/web/javascript/reference/operators/unsigned_right_shift/index.md @@ -2,76 +2,64 @@ title: 符号なし右シフト (>>>) slug: Web/JavaScript/Reference/Operators/Unsigned_right_shift tags: - - Bitwise operator + - ビット演算子 - JavaScript - - Language feature - - Operator - - Reference - - 演算子 - 言語機能 + - 演算子 + - Reference +browser-compat: javascript.operators.unsigned_right_shift translation_of: Web/JavaScript/Reference/Operators/Unsigned_right_shift --- -
{{jsSidebar("Operators")}}
- -

符号なし右シフト演算子 (>>>) (ゼロ埋め右シフト) は、1つ目のオペランドを指定されたビット数だけ右にずらします。右にずらしてあふれたビットは廃棄されます。0のビットが左からずれて入ります。符号ビットは 0 になりますので、結果は負の数にはなりません。他のビット毎演算子とは異なり、ゼロ埋め右シフトは符号なし32ビット整数を返します。

+{{jsSidebar("Operators")}} -
{{EmbedInteractiveExample("pages/js/expressions-unsigned-right-shift.html")}}
+**符号なし右シフト演算子 (`>>>`)** (ゼロ埋め右シフト) は、1つ目のオペランドを指定されたビット数だけ右にずらします。右にずらしてあふれたビットは廃棄されます。0 のビットが左からずれて入ります。符号ビットは `0` になりますので、結果は負の数にはなりません。他のビット毎演算子とは異なり、ゼロ埋め右シフトは符号なし 32 ビット整数を返します。 - +{{EmbedInteractiveExample("pages/js/expressions-unsigned-right-shift.html")}} -

構文

+## 構文 -
a >>> b
-
+```js +a >>> b +``` -

解説

+## 解説 -

この演算子は、1つ目のオペランドを指定されたビット数だけ右にずらします。右にずらしてあふれたビットは廃棄されます。0のビットが左からずれて入ります。符号ビットは 0 になりますので、結果は負の数にはなりません。他のビット毎演算子とは異なり、ゼロ埋め右シフトは符号なし32ビット整数を返します。

+この演算子は、1 つ目のオペランドを指定されたビット数だけ右にずらします。右にずらしてあふれたビットは廃棄されます。0 のビットが左からずれて入ります。符号ビットは `0` になりますので、結果は負の数にはなりません。他のビット毎演算子とは異なり、ゼロ埋め右シフトは符号なし 32 ビット整数を返します。 -

負の数ではない場合、ゼロ埋め右シフトと符号保存右シフトは同じ結果をになります。例えば、 9 >>> 2 は 2 となり、 9 >> 2 と同じになります。

+負の数ではない場合、ゼロ埋め右シフトと符号保存右シフトは同じ結果をになります。例えば、 `9 >>> 2` は 2 となり、 `9 >> 2` と同じになります。 -
.     9 (10進数): 00000000000000000000000000001001 (2進数)
-                  --------------------------------
-9 >>> 2 (10進数): 00000000000000000000000000000010 (2進数) = 2 (10進数)
-
+```js +. 9 (10 進数): 00000000000000000000000000001001 (2 進数) + -------------------------------- +9 >>> 2 (10 進数): 00000000000000000000000000000010 (2 進数) = 2 (10 進数) +``` -

しかし、これは負の数の場合は当てはまりません。例えば、 -9 >>> 2 は 1073741821 になり、 -9 >> 2 (-3 になる) とは異なります。

+しかし、これは負の数の場合は当てはまりません。例えば、 `-9 >>> 2` は 1073741821 になり、 `-9 >> 2` とは異なります (`-3` になる)。 -
.     -9 (10進数): 11111111111111111111111111110111 (2進数)
+```js
+.     -9 (10 進数): 11111111111111111111111111110111 (2 進数)
                     --------------------------------
--9 >>> 2 (10進数): 00111111111111111111111111111101 (2進数) = 1073741821 (10進数)
-
+-9 >>> 2 (10 進数): 00111111111111111111111111111101 (2 進数) = 1073741821 (10 進数) +``` -

+## 例 -

符号なし右シフトの使用

+### 符号なし右シフトの使用 -
 9 >>> 2; // 2
--9 >>> 2; // 1073741821
-
+```js + 9 >>> 2; // 2 +-9 >>> 2; // 1073741821 +``` -

仕様書

+## 仕様書 - - - - - - - - - - - -
仕様書
{{SpecName('ESDraft', '#sec-bitwise-shift-operators', 'Bitwise Shift Operators')}}
+{{Specifications}} -

ブラウザーの互換性

+## ブラウザーの互換性 -

{{Compat("javascript.operators.unsigned_right_shift")}}

+{{Compat}} -

関連情報

+## 関連情報 - +- [ビット演算子 (JavaScript ガイド)](/ja/docs/Web/JavaScript/Guide/Expressions_and_Operators#bitwise) +- [符号なし右シフト代入演算子](/ja/docs/Web/JavaScript/Reference/Operators/Unsigned_right_shift_assignment) -- cgit v1.2.3-54-g00ecf