Menu
Coddy logo textTech

なぜ16進数?

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

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

2進数の問題:

2進数はとても長くなります。次の例を見てみましょう:

数値2進数
25511111111
10001111101000
655351111111111111111

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

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

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

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

hex がコンピューターに最適な理由:

1つの hex digits は、正確に 4 bits(1 byte の半分)を表します。

Bits必要な hex digits
4 bits(ニブル)1 hex digit
8 bits(1 byte)2 hex digits
16 bits(2 bytes)4 hex digits
32 bits(4 bytes)8 hex digits
64 bits(8 bytes)16 hex digits

同じ数を3通りで表す:

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

hex は binary よりもどれほど短いかに注目してください。

アセンブリでhexを見かける場所:

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

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

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

このコースでは、0x プレフィックスを使用します:0x0a0x410xFF

自分で試してみよう

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

quiz icon腕試し

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

基礎のすべてのレッスン

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