16
C 言言言言 n 言言言言言言言言言言言

4_C言語入門 - n進数と基数変換について

  • Upload
    bcrikko

  • View
    697

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 4_C言語入門 - n進数と基数変換について

C 言語入門~ n 進数と基数変換について ~

Page 2: 4_C言語入門 - n進数と基数変換について

2本日の目標

• 2, 8, 10, 16 進数の変換方法を覚える

Page 3: 4_C言語入門 - n進数と基数変換について

コンピュータは、「 0 」と「 1 」しか扱えない

Page 4: 4_C言語入門 - n進数と基数変換について

4「 0 」と「 1 」しか扱えない①

• すべてのデータは「 0 」と「 1 」で

つくられている

• 画像だって、音楽だって、動画だって

すべてが「 0 」と「 1 」の集合体

Page 5: 4_C言語入門 - n進数と基数変換について

5「 0 」と「 1 」しか扱えない②

                                                                                                                        

• 黒 (0) と赤 (1) しかないけど、

「 A 」を表現できる

• いっぱい集まれば、他の文字

や図形が表現できる

• 「 0 」と「 1 」の単位を、

1bit (ビット)と呼ぶ

• 1bit が 8 つ集まると

1byte (バイト)と呼ぶ

Page 6: 4_C言語入門 - n進数と基数変換について

10 進数と 2 進数

Page 7: 4_C言語入門 - n進数と基数変換について

710 進数と 2 進数①

• 人間が数を数えるとき、

0 ~ 9 の 10 個の数字を使っている

「やさしい C 」 p.35

11 0

1 0 0

× 100, 1, 2, 3, 4, 5, 6, 7, 8, 9...

「 9 」の次は、 桁が 1 つ上がり「 10 」になる。

10 倍ごとに桁があがるので

「 10 進数」と呼ぶ× 10

Page 8: 4_C言語入門 - n進数と基数変換について

810 進数と 2 進数②

• コンピュータが数を数えるとき、

0 と 1 の 2 個の数字を使っている

「やさしい C 」 p.35

0

1 0

1 0 0

1

1 1

2 進数

0

2

4

1

3

10 進数

× 2

× 2

0, 1, 10, 11, 100, 101, 110, 111...

「 1 」の次は、 桁が 1 つ上がり「 10 」になる。

2 倍ごとに桁があがるので

「 2 進数」と呼ぶ

Page 9: 4_C言語入門 - n進数と基数変換について

98 進数と 16 進数①

• 10 進数、 2 進数と基本は同じ

8 進数は、 0 ~ 8 が使える

16 進数は、 0 ~9 ~ A ~ F が使える• 8 進数はあまり使われないけど

Page 10: 4_C言語入門 - n進数と基数変換について

108 進数と 16 進数②

8 進数

16 進数

ひとつの桁で、0 ~ 7 の数値を表す

2 進数にすると ひとつの桁で

2 進数 3 桁分の情報が表現できる

0 ~ 111 000 ~ 111

ひとつの桁で、0 ~ 15 の数値を表す

2 進数にすると ひとつの桁で

2 進数 4 桁分の情報が表現できる

0 ~ 1111 0000 ~ 1111

3 ビット

4 ビット

Page 11: 4_C言語入門 - n進数と基数変換について

10 進数を n 進数に変換する

Page 12: 4_C言語入門 - n進数と基数変換について

1210 進数を n 進数に変換①

• 基数変換: n 進数を n’ 進数に変換するこ

• 基数: n 進数の「 n 」のこと

• 割り算と掛け算で基数変換ができる

Page 13: 4_C言語入門 - n進数と基数変換について

1310 進数を n 進数に変換②

他の 8 進数、 16 進数も同じ

基数 n

基本形10 進数(整数)

基数 n 上の商

基数 n 上の商

基数 n 上の商

0 になったら終わり

… 余り

… 余り

… 余り

下から順に並べて、n進数のできあがり!!

2

10 進数 → 2 進数 11

2 5

2 2

2 1 0

… 1

… 1

… 0

「 11」を 2進数に変換すると「 1011」になる!

… 余り … 1

Page 14: 4_C言語入門 - n進数と基数変換について

n 進数を 10 進数に変換する

Page 15: 4_C言語入門 - n進数と基数変換について

15n 進数を 10 進数に変換

他の 8 進数、 16 進数も同じ

基本形 2 進数 → 10 進数

n³ n² n¹ n⁰

1 0 1 1× × × ×

+↓ ↓ ↓

1n³ 0n² 1n¹ 1n⁰+ +↓

各桁に基数の x乗した値をすべて合計した値が 10進数

結果が 10 進数

2³ 2² 2¹ 2⁰

1 0 1 1× × × ×

+↓ ↓ ↓

8 0 2 1+ +↓

「 1011」を 10進数に変換すると「 11」になる

= 11

Page 16: 4_C言語入門 - n進数と基数変換について

16参考文献

• キタミ式 イラスト IT 塾 基本情報技術者