2進数とは?基礎知識、変換方法をわかりやすく解説

  • 2024.06.07
       
2進数とは?基礎知識、変換方法をわかりやすく解説

私たちにとってなじみ深い値の表し方は「0」から「9」の数字を使って値を表現する10進数ですが、コンピュータは「0」と「1」だけで値を表現する2進数であらゆるデータを取り扱っています。本記事ではコンピュータ学習をするうえで知っておくべき2進数について基礎から解説します。また、基数変換の方法や早見表も紹介するので今後の学習の参考にしてください。

2進数をちゃんと理解するための基礎知識

10進数

2進数について説明する前に、私たちにとってなじみの深い10進数について解説します。10進数を理解すれば2進数も理解しやすくなるでしょう。10進数とは、「0」から「9」までの10種類の数字を使い、それよりも大きい数になると1桁を増やす数え方です。「10進数」と呼ばれる理由は1桁で10種類の数字を用いるからです。9の次は10といったように、10種類を使い切ると1桁増やすことで、より大きな数を数えられるようになります。

基数

1つの桁に出てくる数字の数を「基数」といいます。10進数は10を、2進数は2を基数とする数え方です。

2進数とは

10進数とは、「0」から「9」の10種類を使いますが、2進数では「0」と「1」の2種類の数字を使って値を表現します。1桁に「0」と「1」の2種類しか用いることができないので、「0」、「1」と続き、10進数で言うところの「2」、「3」、「4」を表現するには桁上がりさせて「10」(読み方は「ジュウ」ではなく「イチゼロ」)、「11」(イチイチ)、「100」(イチゼロゼロ)と続きます。

10進数012345678910111213141516
2進数00110111001011101111000100110101011110011011110111110000

表現方法

10進数は右から1桁目が「1」、2桁目が「10」、3桁目が「100」といったように、n桁目が基数10の「n-1」乗の重みを持ちます。

たとえば、10進数の「456」を例に挙げます。各桁には右からそれぞれ10∧0、10∧1、10∧2の重みがあります。

4×10∧2+5×10∧1+6×10∧0=4×100+5×10+6×1=400+50+6=456
となります。

これに対し、2進数は右から1桁目が(10進数における)「1」、2桁目が「2」、3桁目が「4」というように、n桁目が基数2の「n-1」乗の位となります。

たとえば、2進数の「10100」を例に挙げると、各桁にはそれぞれ2∧n-1乗の重みがあるのでこれを10進数に変換すると、

2∧4+2∧2=16+4=20
となります。

コンピュータで2進数が用いられる理由

私たちにとってなじみ深いのは「0」から「9」の数字を使って値を表現する10進数です。しかし、コンピュータ内部においては「0」と「1」だけで値を表現する2進数であらゆるデータを取り扱っています。これはコンピュータにとって、2進数の方が扱いやすいためです。人間が10進数で入力したデータもコンピュータ内部で2進数に変換されます。コンピュータ内部では、電気でデータを示しますが、その際1本の電線で1桁の値を表します。10進数では電気の強さを10段階で変化させなくてはならず大変ですね。その点、2進数であれば、容易に表せます。「0」と「1」の2種類だけなので計算がシンプルで簡単になるだけでなく、電子回路でのオンとオフのように表せます。それによって、信号を組み合わせて値を表現するなど、コンピュータのハードウェアをシンプルにできるのです。

ただ、コンピュータ内部の電線の本数にも限りがあることには注意する必要があります。電線が32本である場合、32桁を超えるデータを扱えません。これはCPUやメモリに関しても同様です。

10進数ではダメなの?

10進数で演算を行うコンピュータを開発することも可能です。 現に、初めて開発されたコンピュータ「ENIAC」は、10進演算方式を採用していました。ただ、10進数を用いるとコンピュータが必要以上に複雑化してしまいます。 実際、ENIACでは約18,800 本の真空管が用いられていましたが、そののちに2進数を採用して開発されたコンピュータ「EDSAC」で使用された真空管はわずか約3,000 本と、違いが明らかです。

また、1830年代には機械式計算機を発明した計算機科学者チャールズ・バベッジ氏も10進演算方式の機械式計算機の開発を試みましたが、非常に複雑化したことで苦戦したようです。一方でドイツの発明家コンラート・ツーゼ氏は1838年、2進数演算方式を採用した機械式計算機「Z1」を開発しました。

【余談】16進数

コンピュータでは2進数が用いられます。しかし、2進数ですべてを表現しようとするとデメリットがあります。2進数は桁上がりが激しく、大きな値を2進数で表現しようとするとそうしても桁数も多くなってしまいます。
たとえば、10進数の10は2進数では「1010」ですが、 16進数では「A」と表せます。

このように、大きな値を表すのに2進数ではなく16進数が重宝されます。

10進数2進数16進数
111
101010A
100110 010064

2進数を下桁から4桁ごとに区切り、4桁単位で16進数に置きかえられます。

16進数にはアルファベットが混ざる分、慣れるまで難しく感じるかもしれませんが、「0」と「1」だけで表現する2進数よりは、 はるかに扱い易いでしょう。

10進数012345678910111213141516
2進数00110111001011101111000100110101011110011011110111110000
16進数0123456789abcdef10

2進数を下桁から4桁ごとに区切り、4桁単位で16進数に置きかえられます。

16進数にはアルファベットが混ざる分、慣れるまで難しく感じるかもしれませんが、「0」と「1」だけで表現する2進数よりは、 はるかに扱い易いでしょう。

あなたのご希望に沿った案件が必ず見つかります
【フリーランス向け】高収入好待遇の案件をご紹介

TECH MANIA フリーランス

≫まずは簡単60秒で無料お問い合わせから≪

2進数の活用例

プログラミング

コンピュータでは基本的には2進数でデータ処理を行います。

データベース関連

データベース管理やバックアップに2進数や16進数でデータのインポート・エクスポートを行うことがあります。

電子回路設計

論理回路やデジタルICの設計などには2進数が用いられます。

2進数を扱う上で重要な用語

bit(ビット)/byte(バイト)

bitとは2進数桁を指す「binary digit」の略で、その名のとおり、2進数の1桁を指します。2進数の1桁を1bitとし、電線1本で表せる2進数データです。ビット数(2進数の桁)が増えると表現できるデータの値も増えます。1bitでは0と1の2パターンですが、2ビットでは、00、01、10、11の4パターン、3ビットでは8パターンといったように、1bit増えると表現できる値も2倍になります。

一方でbyteは2進数の8桁を指します。すなはち、8桁の2進数は、8bitの2進数でもあり、1byteの2進数とも言うことができます。コンピュータにおいて、bitはデータの最小単位であり、byteはデータの基本単位です。コンピュータは、byte単位でデータを扱うのが一般的です。

なお、1byte/8bitで表現できる値は00000000~11111111の256パターンです。

2の補数表現

2進数で整数のマイナスの値を表す場合には、補数という特殊なデータ表現を用いることがあります。10進数のマイナスの値を、2の補数表現の2進数にする場合、まず、8bitの2進数にしてから0と1の数字を反転させてから1を足すことで実現できます。

(例)00000001(プラス1)→(反転)→11111110→(1を足す)→11111111(マイナス1)

符号ビット

2の補数表現では、最上位の桁が0であればプラス、1であればマイナスの値とします。 そしてこの最上位桁を符号ビットといいます。
たとえば、 8bitの場合、00000000~01111111が10進数でいう0~127、11111111~10000000が10進数でいう-1~-128を指します。

変換方法

ある進数で示された値をほかの進数に変換することを基数変換といいます。

2進数→16進数への基数変換

2進数を下桁から4桁(4bit)ごとに区切り、4桁単位で16進数に置きかえます。

16進数→2進数への基数変換

16進数を1文字ずつ2進数に置きかえます。

n進数→10進数への基数変換

各桁を10進数に直して合計します。

(例1)16進数の2A→16×2+10=42

(例2)2進数の101→2∧2×1+2∧0×1=4+1=5

10進数→n進数への基数変換

変換する10進法の数をnで割り、余りの数を右に記述します。出た商を連続で割り、下から逆L字に数字を拾うことでn進法に変換できます。

ITスキルの習得方法は?

書籍やインターネットで学習する方法があります。昨今では、YouTubeなどの動画サイトやエンジニアのコミュニティサイトなども充実していて多くの情報が手に入ります。
そして、より効率的に知識・スキルを習得するには、知識をつけながら実際に手を動かしてみるなど、インプットとアウトプットを繰り返していくことが重要です。特に独学の場合は、有識者に質問ができたりフィードバックをもらえるような環境があると、理解度が深まるでしょう。

ただ、ITスキルを身につける際、どうしても課題にぶつかってしまうことはありますよね。特に独学だと、わからない部分をプロに質問できる機会を確保しにくく、モチベーションが続きにくいという側面があります。独学でモチベーションを維持する自信がない人にはプログラミングスクールという手もあります。費用は掛かりますが、その分スキルを身につけやすいです。しっかりと知識・スキルを習得して実践に活かしたいという人はプログラミングスクールがおすすめです。

プログラミングスクールならテックマニアがおすすめ!

ITスキル需要の高まりとともにプログラミングスクールも増えました。しかし、どのスクールに通うべきか迷ってしまう人もいるでしょう。そんな方にはテックマニアをおすすめします!これまで多くのITエンジニアを育成・輩出してきたテックマニアでもプログラミングスクールを開講しています。

<テックマニアの特徴>
・たしかな育成実績と親身な教育 ~セカンドキャリアを全力支援~
・講師が現役エンジニア ~“本当”の開発ノウハウを直に学べる~
・専属講師が学習を徹底サポート ~「わからない」を徹底解決~
・実務ベースでスキルを習得 ~実践的な凝縮カリキュラム~

このような特徴を持つテックマニアはITエンジニアのスタートラインとして最適です。
話を聞きたい・詳しく知りたいという方はこちらからお気軽にお問い合わせください。

早見表【10進数・2進数・16進数】

10進数2進数16進数
0000000000
1000000011
2000000102
3000000113
4000001004
5000001015
6000001106
7000001117
8000010008
9000010019
1000001010a
1100001011b
1200001100c
1300001101d
1400001110e
1500001111f
160001000010
170001000111
180001001012
190001001113
200001010014
210001010115
220001011016
230001011117
240001100018
250001100119
26000110101a
27000110111b
28000111001c
29000111011d
30000111101e
31000111111f
320010000020
330010000121
340010001022
350010001123
360010010024
370010010125
380010011026
390010011127
400010100028
410010100129
42001010102a
43001010112b
44001011002c
45001011012d
46001011102e
47001011112f
480011000030
490011000131
500011001032
510011001133
520011010034
530011010135
540011011036
550011011137
560011100038
570011100139
58001110103a
59001110113b
60001111003c
61001111013d
62001111103e
63001111113f
640100000040
650100000141
660100001042
670100001143
680100010044
690100010145
700100011046
710100011147
720100100048
730100100149
74010010104a
75010010114b
76010011004c
77010011014d
78010011104e
79010011114f
800101000050
810101000151
820101001052
830101001153
840101010054
850101010155
860101011056
870101011157
880101100058
890101100159
90010110105a
91010110115b
92010111005c
93010111015d
94010111105e
95010111115f
960110000060
970110000161
980110001062
990110001163
1000110010064
1010110010165
1020110011066
1030110011167
1040110100068
1050110100169
106011010106a
107011010116b
108011011006c
109011011016d
110011011106e
111011011116f
1120111000070
1130111000171
1140111001072
1150111001173
1160111010074
1170111010175
1180111011076
1190111011177
1200111100078
1210111100179
122011110107a
123011110117b
124011111007c
125011111017d
126011111107e
127011111117f
1281000000080
1291000000181
1301000001082
1311000001183
1321000010084
1331000010185
1341000011086
1351000011187
1361000100088
1371000100189
138100010108a
139100010118b
140100011008c
141100011018d
142100011108e
143100011118f
1441001000090
1451001000191
1461001001092
1471001001193
1481001010094
1491001010195
1501001011096
1511001011197
1521001100098
1531001100199
154100110109a
155100110119b
156100111009c
157100111019d
158100111109e
159100111119f
16010100000a0
16110100001a1
16210100010a2
16310100011a3
16410100100a4
16510100101a5
16610100110a6
16710100111a7
16810101000a8
16910101001a9
17010101010aa
17110101011ab
17210101100ac
17310101101ad
17410101110ae
17510101111af
17610110000b0
17710110001b1
17810110010b2
17910110011b3
18010110100b4
18110110101b5
18210110110b6
18310110111b7
18410111000b8
18510111001b9
18610111010ba
18710111011bb
18810111100bc
18910111101bd
19010111110be
19110111111bf
19211000000c0
19311000001c1
19411000010c2
19511000011c3
19611000100c4
19711000101c5
19811000110c6
19911000111c7
20011001000c8
20111001001c9
20211001010ca
20311001011cb
20411001100cc
20511001101cd
20611001110ce
20711001111cf
20811010000d0
20911010001d1
21011010010d2
21111010011d3
21211010100d4
21311010101d5
21411010110d6
21511010111d7
21611011000d8
21711011001d9
21811011010da
21911011011db
22011011100dc
22111011101dd
22211011110de
22311011111df
22411100000e0
22511100001e1
22611100010e2
22711100011e3
22811100100e4
22911100101e5
23011100110e6
23111100111e7
23211101000e8
23311101001e9
23411101010ea
23511101011eb
23611101100ec
23711101101ed
23811101110ee
23911101111ef
24011110000f0
24111110001f1
24211110010f2
24311110011f3
24411110100f4
24511110101f5
24611110110f6
24711110111f7
24811111000f8
24911111001f9
25011111010fa
25111111011fb
25211111100fc
25311111101fd
25411111110fe
25511111111ff
256100000000100
     

Otherカテゴリの最新記事