検索
特集/連載

「10進法を2進法に換算する方法」を数学的に説明するエンジニアが知っておきたい「2進法」と「16進法」【第2回】

コンピュータの世界ではデータを2進法で表現することが一般的だ。われわれの日常生活ではあまりなじみのない2進法を簡潔に解説しよう。

Share
Tweet
LINE
Hatena

 10を底(基数:1桁の単位を示す数)とする10進法は、われわれにとってなじみ深い。だがコンピュータにとってはそうではない。一般的なコンピュータは、電圧が掛かっているか、いないかの2つの状態を使ってデータを表現するために、2を底とする2進法を使う。10進法の数値を2進法に換算するには、どうすればよいのか。

10進法の数値を2進法に換算する方法

 2進法では、各桁は底である2の累乗であり、各桁の値は0か1になる。例えば10進法の「500」を、2進法に換算することを考えよう。10進法の500は、2の累乗の和として分解すると、

  • 500=1×28+1×27+1×26+1×25+1×24+0×23+1×22+0×21+0×20

と表現できる。以下の表2の通りだ。

表2 2進法に換算した10進法の500(丸かっこ内は10進法での表記)
100000000(28 10000000(27 1000000(26 100000(25 10000(24 1000(23 100(22 10(21 1(20
1 1 1 1 1 0 1 0 0

 つまり10進法の500は、2進法の「111110100」となる。

 コンピュータの世界における2進法には2つのルールがある。1つ目は、桁数を「ビット」(bit)と呼ぶことだ。例えば2進法の「000」「001」「011」「100」「101」「110」「111」は3bit、2進法の「10101010」「11110000」「11111111」は8bitの数値となる。

 2つ目は、複数のビットは「バイト」(B)という単位を構成することだ。一般的に1Bは8bitに換算できる。データフォーマット「Protocol Buffers」など、7bitを1Bに換算する仕様もある。

 人が目で見てすぐに、2進法のビット値やバイト値を10進法に換算するのは難しい。例えば2進法の「1001001011011001」を、人が即座に10進法に換算するのは不可能に近い。

TechTarget発 エンジニア虎の巻

米国TechTargetの豊富な記事の中から、開発のノウハウや技術知識など、ITエンジニアの問題解決に役立つ情報を厳選してお届けします。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る