皆さんは「コンピュータは0と1で動いている。」という話を聞いた事があるでしょうか?
今現在、私達の暮らしにはコンピュータやネットワークが密接に関わっており、日常生活でのオンラインショッピングや調べ物、仕事での事務作業など、様々な事にコンピュータを使用しています。
このように様々な事が可能でとても便利な存在なので、コンピュータがどのような仕組みで動いているのかが気になる方も多いと思いますが、実際は0と1(電流が流れているか、流れていないか)の二種類しか使用していないのです。
(厳密に言えば電圧なども関係していますが…)
なので今回は、その基礎中の基礎である「2進数と基数変換」について解説したいと思います。
2進数とは
そもそも2進数とは何かと疑問に思った方もいると思うので、簡単に2進数の説明をしていこうと思います。
私達の普段の生活で使用されている数字は「0~9」までの数字で構成されており、「9」から1つ増えると「10」となり、桁が一つ繰り上がります。
この、「何個目の数字になったら繰り上がるのか」というのを表した物が~進数という物で、私達の生活になじみ深い「10」になったら繰り上がる物を10進数と言い、コンピュータ内で使用されているのは「2」になったら繰り上がる2進数です。
2進数の数え方
2進数は0と1のみ構成されているので、2進数の仕組みを知らない人が見ると戸惑うかもしれませんが、その2進数の仕組みさえ分かってしまえば簡単です。

例えば、10進数で3の位に1という正数が入っているとしたら、「10×10×1が1個存在している」という事になるので、答えが100になるのが分かると思います。

2進数の場合でもそれは同じで、例えば3の位に1が入っているとしたら、「2×2×1が1つ存在している」という事になるので答えは4になります。
なので、2進数の数字を10進数で数える場合は、「2^(桁数-1)×桁内の整数」で各桁の数値を出し、それらの答えを合計する事で求める事が出来ます。
2進数の小数点以下の場合
2進数で整数の場合は「2^(桁数-1)×桁内の整数」で求める事が出来るのですが、小数点の場合も同じ方法で求める事が可能です。

例えば10進数で0.01という数の場合は、「1÷10÷10×1」という式に置き換える事が出来ると思います。

2進数の場合も同じで、0.01という2進数の数を求める場合は「1÷2÷2×1」なので、0.25になります。
整数の場合はその桁の数-1の分だけ掛けていましたが、小数の場合は逆に割って求める事になるので注意して下さい。
2進数以外の基数
~進数というのは「何個目の数字になったら繰り上がるのか」を表しているので、やろうと思えば3進数や21進数など、様々な進数で数を表す事が可能です。
ですが、その中でも特に使用されているのが、2進数と互換性を持つ「8進数」と「16進数」で、それぞれ2進数の状態から簡単に変換する事が出来ます。
ちなみに、16進数は16になったら桁が繰り上がるのですが、一桁目で「10」や「11」などの数字を使う訳にもいかないので、「A(10)」「B(11)」「C(12)」という風にして数字を表していきます。なので、10進数の27という数字を表す場合は「1B」という書き方です。
それぞれの進数と10進数の対応
イメージしやすい様に、それぞれの進数の値と10進数の値を対応させてみようと思います。
【2進数】
| 10進数 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | … |
| 2進数 | 0 | 1 | 10 | 11 | 100 | 101 | 110 | 111 | … |
【8進数】
| 10進数 | 0 | 1 | ~ | 6 | 7 | 8 | 9 | 10 | … |
| 8進数 | 0 | 1 | ~ | 6 | 7 | 10 | 11 | 12 | … |
【16進数】
| 10進数 | 0 | 1 | ~ | 8 | 9 | 10 | 11 | 12 | ⇒ |
| 16進数 | 0 | 1 | ~ | 8 | 9 | A | B | C | ⇒ |
| ⇒ | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | … |
| ⇒ | D | E | F | 10 | 11 | 12 | 13 | 14 | … |
コンピュータの中では2進数が使用されているのですが、それではすぐに桁数が多くなってしまい分かりにくくなってしまう為、人間が理解しやすい表現として2進数と互換性のある8進数や16進数が使用される事があります。
基数変換とは

基数変換とは、2進数の数値を8進数に変えたり、16進数の数値を10進数に変えたりして、文字通り基数を違う物に変換する事を言います。
通常基数変換をする場合、その数に掛けたり割ったりして求めていくのですが、2進数と8進数や2進数と16進数の様に、元々の基数(2)とべき乗の関係(‘2’^3=’8’)(‘2’^4=’16’)にあたる基数に変換する際には簡単に求める事が可能です。
基数変換の具体的な方法
一般的な基数変換の方法は、整数と小数点以下の場合で求め方が異なります。

まず整数の場合は、元の値から基数で割って余りを出していき、答えが0になったら余りの数値を下から準に書く事で求められます。

次に小数の場合ですが、整数の時とは逆に、元の小数の値から基数を掛けて整数を抜き出していき、答えが全て整数になったら抜き出した整数の値を上から準に書いていく事で求める事が可能です。
この時、整数の場合は出てきた余りを上から書いていきましたが、小数の場合は上から準に書いていくので間違わない様に注意して下さい。
べき乗の関係にある進数の基数変換
通常の場合とは異なり、べき乗の関係にある数同士の基数変換ならば基数変換を簡単に行う事が出来ます。

例えば、2進数と8進数の場合だと、8は2の3乗なので2進数の値から3個ずつに分けていき、それぞれの数を求める事で8進数にする事が可能です。

ちなみにこの逆の方法も可能で、8進数から2進数への変換の場合は、それぞれの桁の数を3桁の2進数にする事で求められます。
とりあえず数をこなして慣れよう
2進数の基数変換などは頻繁に使用する事になると思うので、早い段階から問題数をこなして慣れる様にしておきましよう。
慣れない内は間違いが多くなると思いますが、決して難易度の高い事をしている訳ではないので、早い段階から慣れる様にしておくと、これから情報系の分野を学ぶ人にとっては大きなアドバンテージになると思います。
インターネット上には様々な基数変換の問題が転がっていますし、書店で基本情報技術者関連の本もあると思うので、気になった方は見てみて下さい。
最後に
今回は2進数と基数変換について書いてみました。
参考になれば幸いです。
基数変換でつまずいた時の確認表
基数変換は、公式を覚えるよりも「どの向きに変換しているか」を先に分けると迷いにくくなります。特に2進数、10進数、16進数はIT基礎や資格学習でもよく出るため、次の表で確認しながら練習すると定着しやすいです。
| やりたいこと | 見るポイント | つまずいた時の戻り先 |
|---|---|---|
| 2進数を10進数に直す | 右から1、2、4、8、16…の重みを置き、1の場所だけ足す | 桁の重みを紙に書く |
| 10進数を2進数に直す | 2で割った余りを下から上へ読む | 余りの順番を逆に読んでいないか確認 |
| 2進数と16進数を行き来する | 2進数4桁が16進数1桁に対応する | 4桁ごとに区切る |
| なぜ2進数を使うか理解する | コンピュータ内部では0と1で情報を扱う | コンピュータの五大装置を復習 |
| IT資格の計算問題に備える | 計算手順を短く言える状態にする | ITパスポート・基本情報の考え方を確認 |
| プログラミングとつなげる | ビット、バイト、文字コード、色の表現に広がる | プログラミング学習の順番を見る |
最初は暗算で解こうとせず、桁の重みや割り算の余りを必ず書き出すのがおすすめです。仕組みをもう少し広げたい場合は、命令とデータをメモリに置いて処理するノイマン型コンピュータも合わせて読むと、0と1を扱う理由がつながりやすくなります。
よくある質問
2進数から10進数への変換はどう考えればいいですか?
右端から順に1、2、4、8、16のように重みを置き、2進数で1になっている場所だけを足します。たとえば1010なら、8の場所と2の場所が1なので、10進数では10になります。
10進数から2進数への変換でよく間違える点は何ですか?
2で割った余りを読む向きで間違えやすいです。上から順に読むのではなく、最後に出た余りから下から上へ読むと2進数になります。慣れるまでは余りに番号を振ると確認しやすいです。
16進数はなぜ出てくるのですか?
2進数を短く読み書きするためです。2進数4桁を16進数1桁で表せるため、メモリ番地、色コード、バイナリデータなどを扱う時に見やすくなります。
基数変換はプログラミング初心者にも必要ですか?
最初から難しい計算を完璧にする必要はありません。ただ、2進数や16進数の考え方を知っておくと、ビット、バイト、文字コード、色コード、メモリの説明が理解しやすくなります。
IT基礎からAI活用や副業学習まで進める場合は、学習範囲を広げる前に有料講座が必要な段階かも分けて考えると判断しやすくなります。AIスクールをおすすめしない人では、目的・作業時間・成果物の準備が整っているかを確認する観点を整理しています。
2進数や基数変換のようなIT基礎を学んだあと、AI活用や副業学習で有料支援を検討する場合は、AIスクールの無料相談は何社受けるべき?も確認してください。1社だけで決めず、質問対応、作れる成果物、学習の進め方、料金総額、返金条件を同じ質問で比べると、基礎学習からどこまで支援が必要か判断しやすくなります。
開発・プログラミング記事をまとめて読む
プログラミング・開発記事まとめ
Nexforge内の学習順、環境構築、TypeScript、Rust/Gleam、Linuxトラブル対応の記事を目的別にまとめています。
IT基礎・開発入門の関連記事
言語だけでなく、コンピュータ基礎、資格、設計用語、テストの考え方も確認したい時は、近いカードから選んでください。
学習とキャリア
プログラミング学習、独学、資格、転職判断を先に整理します。
コンピュータ基礎
用語や仕組みで止まる場合は、コンピュータの基本構造から戻ると理解しやすくなります。
開発現場の基礎
実務記事を読む前に、設計用語、ORM、Node.js、E2Eテストの入口を押さえます。
未経験エンジニア転職・学習判断の関連記事
独学、スクール、資格、基礎知識を分けて考えたい時は、今の迷いに近いカードから選んでください。
転職・学習判断の入口
未経験転職や独学の進め方を、最初に大きく判断するための記事です。
学習順と資格
学習の始め方や資格判断で迷う時に、先に読む記事です。
基礎と実務用語
用語で止まる場合は、コンピュータ基礎や設計用語から戻ると理解しやすくなります。
Amazon の PC をスコア化してみた
Amazonにある8〜14インチの小型WindowsタブレットやノートPCを、スペック別にスコア化して比較・ランキング。


コメント