数学の時間:10進数と2進数の相互変換(整数)

数学

この記事のゴール

  • 10進数が何かがわかる
  • 2進数が何かがわかる
  • 10進数から2進数への変換方法がわかる
  • 2進数から10進数への変換方法がわかる

10進数って何ですか?

10進数とは、我々人間が普段の生活において、

暗黙の了解の下で、多くのケースで普通に使っている数であり、

0、1、2、3、4、5、6、7、8、9

と10個数えると、その次の数では位が一つ繰り上がり、

10、11、12、13、14、15、16、17、18、19、

20、21、22、23、24、25、26、27、28、29、

・・・(中略)・・・

90、91、92、93、94、95、96、97、98、99、

100、101、102、103、104、105、106、107、108、109、

110、111、112、・・・(以降省略)

となっていく数の数え方の方式(10進法)で扱われる数のことです。

2進数ってなんですか?

2進数とは、主にコンピュータの内部処理やデータの保存、

データ通信などで使われている数であり、

0、1、

と2個数えたら、その次の数は位が一つ繰り上がり、

10、11、

100、101、

110、111、

1000、1001、

1010、1011、

1100、1101、

1110、1111、・・・(以降省略)

のように数えていく数の数え方の方式(2進法)で扱われる数です。

なんだか、人間にはわかりにくいですね。

2進数とコンピュータ

現在主流のノイマン型コンピュータ(PCやサーバはほぼこれ)は、

データの処理を電気信号の「有」と「無」の2通りで処理するので

0を電気信号無し、1を電気信号有りとして扱えば、

コンピュータとしては、回路に電気信号を通すか通さないかの2通りの処理だけで済むので、

2進数だとデータの処理を行いやすくなるのです。

ちなみに、半角アルファベット大文字の「A」は、

多くのコンピュータ内部では、ASCII(アスキー)という米国の情報通信規格に基づき、

2進数の文字コード「01000001」で扱っています。

「多くのコンピュータ」と書いたのは、例外があるからです。

DNAの4種類の塩基配列を演算に利用するDNAコンピュータや、

量子の重ね合わせや量子もつれを利用する量子コンピュータなどは、

コンピュータ内部でのデータの扱いが全く異なります。

10進数とコンピュータ

現在主流のノイマン型コンピュータは、内部処理、データ記憶、データ通信を2進数で行いますが、

出力は人間にとって理解しやすい10進数に変換しています。

例えば、内部で「11111111」として扱っているデータは、

そのままだと人間には理解しにくいですが、

10進数に変換して「256」とモニタに出力していたります。

10進数のことを英語で「decimal」(デシマル)、

2進数のことを英語で「binary」(バイナリ)と言いますが、

アセンブラなどに関わる人たちはバイナリを読めたりします。(筆者には無理)

数学的に10進数を2進数に変換

順当な方法だけ紹介します。

2進数は、それぞれの位において、0と1の2個を数えたら位が繰り上がる為、

基の10進数を、「2進数の各位の数と、位に応じた2のべき乗、の積」の降順の和で表します。

例えば10進数の「5」を2進数で表すと、

5 = 2 × 2 + 1

  = 22 + 1

  = 1 × 22 + 0 × 21 + 1 × 20

すると、2のべき乗の係数を左から順に並べたものが求める2進数となります。

つまり、10進数の「5」は、2進数で「101」となります。

数学的に2進数を10進数に変換

順当なやり方だけ紹介します。

求める10進数は、上記の逆の式になります。

つまり、「2進数の各位の数と、位に応じた2のべき乗、の積」の和(降順でなくても計算はできる)

が求める10進数となります。

例えば、2進数の「1011」を10進数に変換すると、

1011(2) = 1 × 2 + 0 × 2 + 1 × 2 + 1 × 2

        = 1 × 8 + 0 × 4 + 1 × 2 + 1 × 1

        = 8 + 0 + 2 + 1

        = 11

となります。

コメント

タイトルとURLをコピーしました