「10進法を2進法に換算する方法」を数学的に説明する:エンジニアが知っておきたい「2進法」と「16進法」【第2回】
コンピュータの世界ではデータを2進法で表現することが一般的だ。われわれの日常生活ではあまりなじみのない2進法を簡潔に解説しよう。
10を底(基数:1桁の単位を示す数)とする10進法は、われわれにとってなじみ深い。だがコンピュータにとってはそうではない。一般的なコンピュータは、電圧が掛かっているか、いないかの2つの状態を使ってデータを表現するために、2を底とする2進法を使う。10進法の数値を2進法に換算するには、どうすればよいのか。
10進法の数値を2進法に換算する方法
併せて読みたいお薦め記事
連載:エンジニアが知っておきたい「2進法」と「16進法」
システム開発の基礎知識
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の通りだ。
位 | 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.