1.13 16進数

(値はすべて16ビット(COMETの1語)と想定します)



@ 16進数から(符号なし)10進数への変換 【例】 (C30F)16 =12×163+3×162+0×161+15×160 =12×4096+3×256+0×16+15×1 =49935
16進数(1桁)0123456789ABCDEF
10進数0123456789101112131415


A (符号なし)10進数から16進数への変換 手順:元の10進数を商が0になるまで16で割ってゆき、その余りを逆にたどります。 (5桁以上になった場合は下位4桁をとります) (4桁に満たない場合は上位桁に0を挿入し4桁に合わせます) 【例】 49935を16進数に変換 49935÷16=3120・・・余り15=(F)16  3120÷16= 195・・・余り 0=(0)16 ↑   195÷16=  12・・・余り 3=(3)16 ↑    12÷16=   0・・・余り12=(C)16 ↑ 上位(左)桁 49935=(C30F)16


B 16進数から2進数への変換 【例】 (C30F)16を2進数に変換 (C)16=12=(1100)2 ↓ (3)16= 3=(0011)2 ↓ (0)16= 0=(0000)2 ↓ (F)16=15=(1111)2 (C30F)16=(1100 0011 0000 1111)2


C 2進数から16進数への変換 【例】 (1010 1011 1100 1101)2を16進数に変換 (1010)2=10=(A)16 ↓ (1011)2=11=(B)16 ↓ (1100)2=12=(C)16 ↓ (1101)2=13=(D)16 (1010 1011 1100 1101)=2(ABCD)16

D 16進数から(符号つき)10進数への変換

 最も左の桁が7以下の場合 → 本ページ@の手順を行います。
 最も左の桁が8以上の場合は、16進数を本ページBの手順で2進数に変換後、前ページAの手順で(符号つき)10進数へ変換します。


E (符号つき)10進数から16進数への変換

 正の整数の場合 → 本ページAの手順を行います。
 負の整数の場合は、(符号つき)10進数を前ページのCの手順で2進数に変換し、本ページCの手順で16進数に変換します。


問題

問1 10進数の28421を16進数に変換せよ。

問2 16ビットの16進数値#A14Eを、符号付き10進数に変換せよ。ここで#は16進数を表すプレフィックスである。