TERM GUIDE · DIGITAL

10進数

「10進数」とは

10進数とは、0、1、2、3、4、5、6、7、8、9の10種類の数字を使って数を表す方法です。私たちが日常生活で普通に使っている数の表し方が10進数です。

例えば、

253
=2×100+5×10+3×1
=2×10²+5×10¹+3×10⁰

という数は、単に「2、5、3」という数字を並べたものではありません。それぞれの桁には、

  • 2は100の位
  • 5は10の位
  • 3は1の位

という意味があります。

このように、数字が置かれた位置によってその数字の重みが決まる表現方法を位取り記数法といいます。

基数

何種類の数字を使って数を表すかを示す数を基数といいます。

10進数の基数は10であり、各桁の重みは右から順に、

10⁰、10¹、10²、10³、…

すなわち、

1、10、100、1000、…

となります。

コンピュータでは10進数以外に、2進数や16進数がよく使われます。

表記法と基数
表記法基数使用する数字
2進数20、1
10進数100~9
16進数160~9、A、B、C、D、E、F

16進数では、10以上を1文字で表すため、

A=10、B=11、C=12、D=13、E=14、F=15

とします。

基数をはっきりさせたい場合は、

1010₂、 1010₁₀、 1010₁₆

のように右下に基数を書きます。

同じ「1010」という数字列でも、基数が違えば表している値は異なります。

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

2進数では、各桁の重みは右から順に、

2⁰、2¹、2²、2³、…

すなわち、

1、2、4、8、16、32、64、128、…

となります。

例えば、

1010₂

では、

1×2³+0×2²+1×2¹+0×2⁰

なので、

8+2=10

となります。したがって、

1010₂=10₁₀

です。

2進数では、1になっている桁の重みだけを足すと考えると計算しやすくなります。

例えば、

110101₂

では、1になっているのは、

2⁵、2⁴、2²、2⁰

の桁なので、

32+16+4+1=53

となります。

したがって、

110101₂=53₁₀

です。

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

10進数の整数を2進数へ変換する基本的な方法は、2で繰り返し割り、そのときの余りを並べる方法です。

2進数で使う数字は0と1だけなので、整数を2で割ったときの余りも必ず0または1になります。この余りが2進数の各桁に対応します。

例えば、10進数の29を2進数に変換します。

29を2で割り、商と余りを求めます。

29÷2=14 余り1

次に、得られた商14をさらに2で割ります。

14÷2=7 余り0

同じ操作を、商が0になるまで繰り返します。

7÷2=3 余り1
3÷2=1 余り1
1÷2=0 余り1

これをまとめると、次のようになります。

29を2で割ったときの商と余り
計算商余り
29÷2141
14÷270
7÷231
3÷211
1÷201

ここで重要なのは、余りを求めた順ではなく、最後の余りから逆向きに読むことです。

下から上へ読むと、

11101

となるので、

29₁₀=11101₂

です。

なぜ余りを逆順に読むのかというと、最初に求めた余りは2進数の最も右の桁、つまり2⁰の位を表すからです。その次の余りが2¹の位、その次が2²の位というように、割り算を進めるにつれて上位の桁が求められていきます。

したがって、「2で割る→余りを記録する→商をさらに2で割る」を繰り返し、余りを下から上へ読むのが10進数から2進数への基本的な変換方法です。

別の考え方として、10進数を2の累乗の和に分解する方法もあります。

29なら、

29=16+8+4+1
=2⁴+2³+2²+2⁰

となります。

そこで、2⁴、2³、2²、2¹、2⁰の各桁について、使うところを1、使わないところを0とすると、

11101₂

となります。

同様に26なら、

26=16+8+2
=2⁴+2³+2¹

なので、

26₁₀=11010₂

となります。

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

16進数では、各桁の重みは右から順に、

16⁰、16¹、16²、…

すなわち、

1、16、256、…

となります。

例えば、

82₁₆

は、

8×16¹+2×16⁰

なので、

8×16+2=130

となります。

したがって、

82₁₆=130₁₀

です。

16進数ではA~Fも数字として扱うことに注意します。

例えば、

3C₁₆

ではCは10進数の12を表すため、

3×16+12=60

となります。

したがって、

3C₁₆=60₁₀

です。

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

10進数の整数を16進数へ変換するときも、2進数の場合と同じ考え方を使います。

16で繰り返し割り、そのときの余りを最後から逆向きに読む方法です。

例えば、10進数の475を16進数に変換します。

まず、475を16で割ります。

475÷16=29 余り11

次に、商29を16で割ります。

29÷16=1 余り13

さらに、商1を16で割ります。

1÷16=0 余り1

まとめると、次のようになります。

475を16で割ったときの商と余り
計算商余り
475÷162911
29÷16113
1÷1601

16進数では、一つの桁に0から15までの値を入れる必要があります。しかし、10~15については1文字の数字がないため、次のようにA~Fを使用します。

10=A、11=B、12=C、13=D、14=E、15=F

したがって、余り11はB、余り13はDに置き換えます。

求めた余りを下から上へ読むと、

1DB

となるので、

475₁₀=1DB₁₆

です。

つまり、10進数から16進数への変換では、

  1. 元の数を16で割る

  2. 商と余りを求める

  3. 商をさらに16で割る

  4. 商が0になるまで繰り返す

  5. 余りが10~15ならA~Fに置き換える

  6. 余りを最後から逆向きに読む

という手順を使います。

例えば、10進数の130を16進数に変換すると、

130÷16=8 余り2
8÷16=0 余り8

となるので、余りを下から読むと、

82₁₆

となります。

したがって、

130₁₀=82₁₆

です。

同じ数字列でも基数によって値が変わる

例えば「11」という数字列を考えます。

2進数の11なら、

11₂=1×2+1=3

10進数の11なら、

11₁₀=1×10+1=11

16進数の11なら、

11₁₆=1×16+1=17

となります。

つまり、

11₂=3₁₀、 11₁₀=11₁₀、 11₁₆=17₁₀

です。

数字列だけを見るのではなく、何進数として書かれているかを確認することが重要です。

小数にも位の重みがある

位取り記数法は整数部分だけでなく、小数部分にも使われます。

10進数では、小数点の右側は、

10⁻¹、10⁻²、10⁻³、…

すなわち、

1/10、1/100、1/1000、…

という重みをもちます。

例えば、

0.253₁₀

は、

2×1/10+5×1/100+3×1/1000

を意味します。

同じ考え方を2進数や16進数にも使えます。

2進小数を10進数に変換する

2進小数では、小数点の右側の重みは、

2⁻¹、2⁻²、2⁻³、2⁻⁴、…

すなわち、

1/2、1/4、1/8、1/16、…

となります。

例えば、

0.1011₂

なら、

1×1/2+0×1/4+1×1/8+1×1/16

なので、

1/2+1/8+1/16
=(8+2+1)/16
=11/16
=0.6875

となります。

したがって、

0.1011₂=0.6875₁₀

です。

また、

7/32

を2進数で表す場合は、

7/32
=4/32+2/32+1/32
=1/8+1/16+1/32

なので、

7/32=0.00111₂

となります。

16進小数を10進数に変換する

16進小数では、小数点の右側の重みは、

16⁻¹、16⁻²、16⁻³、…

すなわち、

1/16、1/256、1/4096、…

となります。

例えば、

0.248₁₆

は、

2×1/16+4×1/256+8×1/4096

を意味します。

計算すると、

2/16+4/256+8/4096
=64/512+8/512+1/512
=73/512

となります。

したがって、

0.248₁₆=73/512

です。

逆に、

1/32

を16進数で表すと、

1/32=8/256

です。

16進小数の第2位の重みは1/256なので、

1/32=0.08₁₆

となります。

10の補数

補数とは、ある決められた桁数の中で、ある数に加えると桁上がりしてちょうど基数の累乗になる数です。

例えば、1桁の7に対する10の補数は、

10−7=3

です。

実際、

7+3=10

となります。

3桁の265に対する10の補数は、

1000−265=735

です。

実際、

265+735=1000

となります。

補数を利用すると、引き算を足し算として処理することができます。

2の補数

コンピュータで負の整数を表す代表的な方法が2の補数表現です。

nビットの2の補数では、

−2ⁿ⁻¹~2ⁿ⁻¹−1

の整数を表せます。

例えば4ビットなら、

−8~7

を表すことができます。

正の数は通常の2進数と同じです。

一方、負の数を作るときは、

  1. 絶対値をnビットの2進数で表す

  2. 0と1をすべて反転する

  3. 1を加える

という手順を使います。

例えば10進数の−6を4ビットで表します。

まず6は、

0110

です。

0と1を反転すると、

1001

さらに1を加えると、

1010

となります。

したがって、

1010

は4ビットの2の補数表現では−6を表します。

EXAMPLE

例題

10進数 · EXAMPLEオリジナル

10進法で、1桁の7に対する10の補数を(ア)、3桁の265に対する10の補数を(イ)とする。正しい組合せを、次から選べ。

  1. 0

    (ア)3、(イ)735

  2. 1

    (ア)2、(イ)734

  3. 2

    (ア)3、(イ)734

  4. 3

    (ア)7、(イ)265

解答・解説を確認

正解0.(ア)3、(イ)735

解説

n桁の10進数Nに対する10の補数は、10ⁿ−Nで求めます。1桁の7では、10−7=3です。3桁の265では、1000−265=735です。実際に7+3=10、265+735=1000となり、それぞれ桁数を超える桁上がりだけが残ります。したがって、(ア)は3、(イ)は735です。補数を利用すると、引き算を足し算として処理できます。

出典
オリジナル

PRACTICE

10進数の問題に挑戦