2進数、10進数、16進数表記体系
メニューを表示するにはスワイプしてください
ブロックチェーンおよびコンピューティングの分野において、数値表現体系(主に2進法、10進法、16進法)の理解は基本事項です。
10進法
10進法(デシマルシステム、基数10)は、日常的に使用される数の表現方法であり、0から9までの10個の数字を使用します。ブロックチェーンの仕組み自体で直接使われることはありませんが、値を解釈する際に用いられる体系です。
2進法
2進法(バイナリシステム、基数2)は、コンピュータの基本言語であり、0と1の2つの数字で値を表現します。2進法の各桁はビットと呼ばれ、情報の最小単位です。例えば、数値4は2進法で100となります。
ただし、コンピュータのメモリ上では、整数に必要なビット数を事前に決めておく必要があります。例えば、整数に8ビット(1バイト)を割り当てる場合、整数は常に8桁で表現され、すべての桁を使い切らなくても8桁になります。数値4は次のように表されます:00000100。
0から4までの10進数を8ビット(1バイト)整数として2進法で表現した例を見てみましょう:
16進数システム
16進数システム(または基数16)は、10進数システムを拡張し、16個の記号(0から9、続いてaからf(a = 10, b = 11, ..., f = 15))を使用。さらに、16進数はしばしば0xで接頭される。コンピューティング分野では、16進数はバイナリ値をより人間にとって分かりやすい形で表現する。
特に大きな数値の場合、バイナリよりもコンパクトで一目で理解しやすい。例えば、Bitcoinのブロックヘッダーは16進数で保存されるが、処理はバイナリで行われる。
上記の表を拡張し、1バイト整数(0から15)の16進数表現を追加する:
16進数と同様に、2進数も時々 0b という文字で接頭辞が付けられることがあります。
2つの16進数文字は1バイト(8ビット)を表す。
2進数/10進数変換
2進数を10進数に変換するには、各ビットを右から左へ、位置を2から始めて、それぞれ0のべき乗で乗算し、その結果を合計する。以下はその例である。
2進数: 1101
10進数: 1∗23+1∗22+0∗21+1∗20=8+4+0+1=13
10進数を2進数に変換するには、数値を2で割り、余りを書き留めます。商がゼロになるまで2で割り続けます。2進数は、余りを逆順に読んだものです。
例を見てみましょう:
10進数: 13
2進数: 1101(13を2で割ると6余り1、6を2で割ると3余り0、3を2で割ると1余り1、1を2で割ると0余り1)
16進数と10進数の変換
16進数を10進数に変換するには、各16進数の桁を10進数に変換し、2進数と同様に、変換した各桁に対して、その桁の位置(右から左へ、最初は16)の0のべき乗を掛け算し、合計する。
16進数: 1A3
10進数: 1∗162+10∗161+3∗160=256+160+3=419
10進数から16進数への変換は、数値を16で割り、余りを書き留める方法。商を16で割り続け、商が0になるまで繰り返す。16進数は余りを逆順に読んだもの。
10進数: 419
16進数: 1A3 (419を16で割ると商26余り3、26を16で割ると商1余り10、10は16進数で'A')
2進数/16進数の変換
2進数から16進数、またはその逆に変換するには、まず10進数に変換し、その後10進数から目的の記数法に変換する方法がある。
フィードバックありがとうございます!
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください