Menu
CoddyTech

なぜ16進数?

CoddyのAssemblyジャーニー「基礎」セクションの一部。レッスン 10/45。

コンピューターがバイナリを使うことはもう知っています。では、なぜアセンブリプログラマーはバイナリを直接書くことがほとんどないのでしょうか?

二進数の問題点:

二進数はとても長くなります。次の例を見てください:

数値二進数
25511111111
10001111101000
655351111111111111111

1と0の長い文字列を書くのは時間がかかり、間違いやすく、読みにくいです。

解決策:16進数(基数16)。

16進数(または「hex」)では、16個の記号を使います。

数字値
0-90から9
A10
B11
C12
D13
E14
F15

16進数がコンピューターに最適な理由:

16進数の1桁は、正確に4ビット(1バイトの半分)を表します。

ビット数必要な16進数の桁数
4ビット(ニブル)16進数1桁
8ビット(1バイト)16進数2桁
16ビット(2バイト)16進数4桁
32ビット(4バイト)16進数8桁
64ビット(8バイト)16進数16桁

同じ数を3通りで表す:

10進数2進数16進数
25511111111FF
100011111010003E8
655351111111111111111FFFF

16進数が2進数よりどれだけ短いかに注目してください。

アセンブリで16進数が使われる箇所:

  • メモリアドレス(0x7FFF や 0x402000 など)
  • ASCIIコード('A'を表す0x41や、改行を表す0x0aなど)
  • デバッガー内のレジスタ値
  • 色の値(赤を表す0xFF0000など)

16進数は接頭辞を付けて表記します:

接頭辞例意味
0x0xFF16進数のFF(10進数の255)
$$FF同じ意味(一部のアセンブラで使用)
hFFh同じ意味(古い表記法)

このコースでは、0x 接頭辞を使用します:0x0a、0x41、0xFF。

自分で試してみよう

このレッスンにはコードチャレンジは含まれていません。

quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン

自分で練習してみよう: Assemblyプレイグラウンド

変換を確かめる: N進数変換