十六進法

16進数の数字体系は、「カラブ」と略されることが多いが、16の記号(ベース16)で構成された数字体系である。標準的な数値体系は10進数(基数10)と呼ばれ、10個の記号を使用します。0,1,2,3,4,5,6,7,8,9.16進数は、10進数と6つの余分な記号を使用します。9以上の値を表す数値記号はないので、アルファベットのA、B、C、D、E、Fが使用されます。

人間はほとんどが10進法を使っています。これは、人間の手の指が10本だからでしょう。しかし、コンピュータには、2進数(またはビット、略してビット)と呼ばれるオンとオフしかありません。2進数は、0と1の文字列にすぎません。例えば、11011011。コンピュータを扱うエンジニアは、便宜上、ビットをまとめてグループ化する傾向があります。1960年代などの以前の日には、彼らは一度に3つのビットをグループ化する(多くの大規模な10進数のように数123,456,789のように、3つにグループ化されている)。3つのビットは、それぞれがオンまたはオフになっていて、0から7までの8つの数字を表すことができます:000 = 0; 001 = 1; 010 = 2; 011 = 3; 100 = 4; 101 = 5; 110 = 6と111 = 7。

コンピュータが大型化するにつれ、ビットを3つではなく4つにまとめた方が便利になりました。これにより、記号が表す数字が2倍になり、8つの値を持つのではなく、16の値を持つことができます。16進数=6、10進数=10なので、16進数と呼ばれています。コンピュータの専門用語では、4 ビットで 1 ニブル (nybble と綴られることもあります) になります。ニブルは、記号0-9またはA-Fを使用して書かれた1つの16進数の数字です。2つのニブルはバイト(8ビット)を作ります。ほとんどのコンピュータ操作では、バイトまたはバイトの倍数(16 ビット、24、32、64 など)を使用します。16進法では、これらの大きな2進数を書きやすくしています。

10進数や8進数、その他の数字表記システムとの混同を避けるため、16進数は数字の後に"h"を、または数字の前に"0x"を付けて表記することがあります。例えば、63hと0x63は16進数の63を意味します。

16進数の値

16進数は、それぞれが2進数と簡単に比較できるため、8進数(ベース8)と似ています。16進数は4ビットの2進数コーディングを使用しています。これは、16進数の各桁が2進数の4桁と同じであることを意味します。八進数は3ビットの2進法を使用しています。

10進法では、最初の桁が1の位、左の次の桁が10の位、その次が100の位などとなります。16進法では、各桁は10ではなく16の値をとることができます。つまり、桁には1の位があり16の位があり、次の桁が256の位になります。なので、1h=10進数では1h、10h=16進数では10h、100h=256となります。

16進数を2進数、8進数、10進数に変換した値の例。

六角

バイナリ

オクタル

十進数

0

0

0

0

1

1

1

1

2

10

2

2

3

11

3

3

4

100

4

4

5

101

5

5

6

110

6

6

7

111

7

7

8

1000

10

8

9

1001

11

9

A

1010

12

10

B

1011

13

11

C

1100

14

12

D

1101

15

13

E

1110

16

14

F

1111

17

15

10

1 0000

20

16

11

1 0001

21

17

24

10 0100

44

36

5E

101 1110

136

94

100

1 0000 0000

400

256

3E8

11 1110 1000

1750

1000

1000

1 0000 0000 0000

10000

4096

フェース

1111 1010 1100 1110

175316

64206

変換

2進数から16進数へ

2進数から16進数に変更するには、グループ化の方法を使います。2 進数は、右から順に 4 桁のグループに分割されます。16進数から変更するには、逆の操作を行います。16進数はそれぞれ2進数に変更され、通常はグループ化が解除されます。

バイナリ

グループ化

六角

01100101

0110

0101

65

010010110110

0100

1011

0110

4B6

1101011101011010

1101

0111

0101

1010

D75A

2進数のビット数が4の倍数でない場合は、そのようにするためにゼロを入れています。例としては、以下のようなものがあります。

  • 2進数110=0110で、6進数になります。
  • バイナリ 010010 = 00010010 となり、12 Hexになります。

16進数から10進数へ

16進数から10進数に変換するには、2つの一般的な方法があります。

最初の方法は、手動で変換する場合の方が一般的です。

  1. 16進数の各桁の10進数を使います。0~9の場合は同じですが、A=10、B=11、C=12、D=13、E=14、F=15となります。
  2. 以下の各ステップで変換した数字の合計を保管してください。
  3. 16進数の最下位の数字から始めてください。それが右端の数字です。これが合計の最初の項目になります。
  4. 一番下の桁を取ってください右端の数字の隣です。その桁の10進数に16を掛けてこれを足して合計します。
  5. 3番目に小さい桁についても同じようにしますが、162(つまり16、256)を掛けます。それを合計に加えます。
  6. 桁ごとに、それぞれの桁に16の倍数をかけて続けます。(4096、65536など)

 

場所

6

5

4

3

2

1

1048576 (165)

65536 (164)

4096 (163)

256 (162)

16(161)

1 (160)


次の方法は、ソフトウェアで数字を変換するときに、より一般的に行われています。数字が何桁の桁数を持っているかを知る必要はありませんし、16以上の掛け算をすることもありませんが、紙の上では長く見えます。

  1. 16進数の各桁の10進数を使います。0~9の場合は同じですが、A=10、B=11、C=12、D=13、E=14、F=15となります。
  2. 以下の各ステップで変換した数字の合計を保管してください。
  3. 有効数字(左端の数字)から始めます。これは合計の最初の項目です。
  4. 他の桁が存在する場合は、合計に 16 を掛けて、次の桁の小数点以下の値を加算します。
  5. 桁がなくなるまで上記の手順を繰り返します。


例としては、以下のようなものがあります。5Fhと3425hを10進数にする方法1

 

5Fh~10進数

六角

十進数

5Fh

=

( 5 x 16 )

+

( 15 x 1 )

=

80

+

15

5Fh

=

95

 

3425h~10進数

六角

十進数

3425h

=

( 3 x 4096 )

+

( 4 x 256 )

+

( 2 x 16)

+

( 5 x 1 )

=

12288

+

1024

+

32

+

5

3425h

=

13349

例としては、以下のようになります。5Fhと3425hを10進数にする方法2

 

5Fh~10進数

六角

十進数

乄高

=

5

=

(5 x 16) + 15

乄高

=

80 + 15 (それ以上の桁数はありません)

5Fh

=

95

 

3425h~10進数

六角

十進数

乄高

=

3

=

(3 x 16) + 4 = 52

乄高

=

(52 x 16) + 2 = 834

乄高

=

(834 x 16) + 5 = 13349

3425h

=

13349

関連ページ

質問と回答

Q:16進数とは何ですか?


A:16進数法は16個の記号で構成される16進数法です。

Q:10進法で使われる10個の記号は何ですか?


A:10進法で使われる10個の記号は、0、1、2、3、4、5、6、7、8、9です。

Q:16進法で使用される6つの余分な記号は何ですか?


A:16進法では、英語のアルファベットから取ったA、B、C、D、E、Fを使用しています。

Q:最近のコンピュータでは、1バイトは何ビットですか?


A:最近のコンピュータでは、1バイトは一般に8ビットを含んでいます。

Q:エンジニアやコンピュータ科学者は、4ビットの値を何と呼んでいますか?


A:エンジニアやコンピュータ科学者は、4ビットの値をニブル(nybbleと表記されることもあります)と呼びます。

Q:16進数を書くときに、他の番号体系との混同を避けるにはどうしたらよいですか?


A:16進数を書くときに他の番号付けシステムとの混乱を避けるために、数字の後に「h」または数字の前に「0x」を追加することができます。例えば、63hまたは0x63は16進数で63を意味します。

AlegsaOnline.com - 2020 / 2023 - License CC3