「JavaScript/ビット演算」の版間の差分
削除された内容 追加された内容
編集の要約なし |
→ビット演算: ビット演算を行う前にNumber型の値を一度32ビットの整数に変換をすることである。 これは、JavaScriptの数値型は倍精度浮動小数点型(64ビットFloat)で、仮数部が53ビットで、それ以下の2の冪乗が32ビットという理由からである。 タグ: 2017年版ソースエディター |
||
3 行
== ビット演算 ==
JavaScriptには、2進数(ビットパターン)を操作するためのビット演算子が用意されている。これらの演算子は、他の演算子ほど頻繁に使用されるものではないので、必要ない場合はこのセクションを読み飛ばしてもかまわない。
=== ビット演算 ===
29 ⟶ 28行目:
JavaScriptでビット演算を行ううえで注意すべきことは、ビット演算を行う前にNumber型の値を一度32ビットの整数に変換をすることである。
これは、
ビット演算を既に理解している場合はこれ以降の解説は必要ないと思われるが、プログラミング初学者のために以降はビット演算の基本的な解説を行う。
37 ⟶ 36行目:
コンピューターは、その回路構成を単純にするため通常内部的に2進法を用いているため、2進数で計算できるものはこちらで計算した方が高速に動作するため
、通常こちらを利用する。
二進法とは、10進法とは違い2の倍数で桁上げを行う数の表記法である。理解のために、10進法と、2進、
{| class="wikitable"
|+ 異なる基数での整数リテラル表記
|- align="right"
! 10進法
| 1
| 2
64 ⟶ 65行目:
|- align="right"
! 2進法
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 0b10100
▲| 1
|- align="right"
! 8進法
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 0o24
|- align="right"
! 16進法
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 0x14
|}
2進法は、
16進法では、9を超える数には順にa,b,c,d,e,fと記号を振ってあり1~15までを一桁で表せる。
16進法を使用する場合には、数字の前に0xを付けて表記する。
183 ⟶ 143行目:
その後、ECMA-262第6版で 0b (または 0B)を前置する2進法表記とともに 0o (または 0O)を前置する8進法表記で復活した。
=== 補数 ===
191 ⟶ 150行目:
簡単のため、この項の解説はあえて省略をする。
=== ビットシフト ===
260 ⟶ 219行目:
0 ^ 0; // 0が返る </nowiki>
▲* [[w:ビット演算|ビット演算]]
これらの演算はビットごとに行われるため、通常の四則演算とは違った考え方で結果を捉える必要がある。
337 ⟶ 295行目:
この変化は実際にかなり早い時期におこっており、1946年のENIACの登場の後に、2進数での設計の方が回路構成が単純になるという論文が登場しており、後継の1951年のEDVAC(エドバック)では既に2進数での計算に移っています。
}}
|