ハードウェアの基礎
 目次へ 次へ

§1 2進数と16進数

1−1 2進数

 10進数が数値を0から9までの数字で表すのに対して、2進数では数字の0と1だけで表す。
 コンピュータの内部でのデータの処理は、この2進数で行われている。電流の流れていない状態と流れている状態が、それぞれ数値の0と1に対応する。

10進数 2進数
 0
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
10000
 左の表が10進数と2進数の対応表である。
 2進数は、左表のように1に1を加えると1つけたが繰り上がる。
 例えば、10進数では、321を次のように表す。

 3×102+2×101+1×100=321
(3×100+2×10+1×1=321)

 すなわち、百の位、十の位、一の位というように各けたに重みがある。

 同じように2進数にも各けたに重みがある。
 例えば、2進数の101は次のように表せる。

1×22+0×21+1×20=5
(1×4+0×2+1×1=5)

 10進数と区別するため、2進数の数値の後ろに(2)または“B”をつける。

ex. 0100(2)=4
ex. 0100B=4

 2進数を10進数に変換するときは、例えば2進数の1001Bの場合、次のようになる。

8 4 2 1
1001

 8+1=9   となる。
 けたの重みが1の部分の重みを加える。


1−2 16進数

 10進数は9に1を加えてけた上がりするが、16進数は15に1を加えて初めてけた上がりする。
 したがって、9以上の値を1けたで表せる数字が必要となるので、英字のA−Fを使う。
10進数 16進数
 0
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
 0
 1
 2
 3
 4
 5
 6
 7
 8
 9
 A
 B
 C
 D
 E
 F
10

 左の表が10進数と16進数の対応表である。
 16進数は、左表のように1に1を加えると1つけたが繰り上がる。
 例えば、10進数では、321を次のように表す。

3×102+2×101+1×100=321
(3×100+2×10+1×1=321)

 すなわち、百の位、十の位、一の位というように各けたに重みがある。

 同じ様に16進数も各けたに重みがある。
 例えば、16進数の101は次のように表せる。

1×162+0×161+1×160=257
(1×256+0×16+1×1=257)

 10進数と区別するため、16進数の数値の後ろに”H”をつける。

ex. 11H=17

 BASIC言語では、先頭に“&H”をつける。C言語では、先頭に“0x”をつける。


1−3 2進数と16進数

 10進数   16進数       2進数     
00 0000 0000
01 0000 0001
02 0000 0010
03 0000 0011
04 0000 0100
05 0000 0101
06 0000 0110
07 0000 0111
08 0000 1000
09 0000 1001
10 0A 0000 1010
11 0B 0000 1011
12 0C 0000 1100
13 0D 0000 1101
14 0E 0000 1110
15 0F 0000 1111
16 10 0001 0000

 2進数の1111がちょうど16進数のFHになる。
8 4 2 1
1111        
8+4+2+1=15=FH
 したがって、2進数の4けたで16進数の1けたが表せ、また、2進数の8けたで16進数の2けたで表せる。


 目次へ 次へ
Copyright © 2001 Hiroshi Masuda

 

 

inserted by FC2 system