Menu
Coddy logo textTech

なぜ16進数?

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

コンピュータがバイナリを使用していることは、もうご存知でしょう。では、なぜアセンブリプログラマがバイナリを直接書くことはめったにないのでしょうか?

2進数の問題点:

2進数は非常に長くなります。次の例を見てください:

数値2進数
25511111111
10001111101000
655351111111111111111

1と0の長い文字列を書くことは、時間がかかり、エラーが発生しやすく、読みにくいものです。

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

16進数(または「hex」)は16個の記号を使用します:

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

なぜ16進数がコンピュータに最適なのか:

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

ビット必要な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進数(hex)が使われる場所:

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

16進数はプレフィックス(接頭辞)を付けて記述されます:

プレフィックス意味
0x0xFF16進数のFF(10進数で255)
$$FF同じ意味(一部のアセンブラで使用されます)
hFFh同じ意味(古いスタイル)

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

自分で試してみよう

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

quiz icon腕試し

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

基礎のすべてのレッスン