先生、暗記科目はできるんですけど、2進数が全然わかりません…
2進数は暗記科目じゃないもんね。
テイストが違くて、混乱する人も多いんだよ。
私も計算問題が鬼門かもしれません…
大丈夫!ここでは2進数の考え方から計算方法までやっていくから安心してね!
2進数
10進数の仕組み
2進数を説明する前に、まずは普段使っている10進数を元に考えた方が分かりやすいと思います。
ですので、このページでは10進数と2進数を交互に説明していきますね!
そもそも10進数は、各桁が10になったら次の桁へ進むという仕組みです。
したがって、各桁がとる値の範囲は0~9までになり、
もし9に1が加えられたとき「10」となって次の位に上がります。
この「位」ですが、「一の位」から始まって「十の位」、「百の位」と10倍ずつされるのにも注目してください。
2進数の仕組み
2進数でも同様の仕組みを使用しています。
ただし、2進数の場合は各桁が2になったら次の桁へ進みます。
したがって、2進数の場合、各桁で持てるのは「0」と「1」の二つだけになりますね。
なのでもし「1+1」があったら「2」ではなく、次の桁に進んで「10」となります。
また、位の単位も、「一の位」の次が「十の位」ではなく「二の位」になっていることに注目してください。
2進数だと、位の単位も変わるんだね。
さて、次は位の単位について、もう少し詳しく見ていきましょう!
10進数の位取り
まずはいつも通り、10進数の位取りを確認していきましょう!
10進数は「一の位」の次は「十の位」、「百の位」、「千の位」となっています。
これ、全部10倍になっているんですね。
それもそのはず、各桁が10になったら次の桁に行くわけですからね。
逆に、1つ桁が繰り下がると全て「÷10」になっています。
これ、実はn進数が次の桁に行くときは、「×n」になり、桁が下がるときは「÷n」になるという法則があるんです。
n0=1というのは、とても大事だから覚えておいてね!
2進数の位取り
次に、2進数の位について考えてみましょう!
さて、2進数は各桁の位が何倍になっているか分かりますか?
答えは2倍です。2になったら次の位に上がるわけですからね。
同様に、桁が下がるときはその位は「÷2」されています。
この、小数点以下になる場合の累乗の形は、是非覚えておいてください!
また、累乗にマイナスが来ると、分母にその累乗の値が来ます。
例えば 2-3 なら 1/23 のようになります。
2進数の計算方法(整数部分)
ここからは計算部分だよ。
小数部分と整数部分は少し方法が違うから、分けて説明するね。
2進数から10進数へ
n進数の計算をするときに最も重要なことは、それぞれの位の単位は何かということです。
例えば10進数456なら、それぞれの位の単位とそれぞれの位の値を掛け合わせて計算します。
2進数も計算方法は同じです。
ただし、位の単位が10進数とは違うので、注意をする必要があります。
それでは例として、2進数101を10進数に直してみましょう
2進数の位の単位は下から、「一の位」、「二の位」、「四の位」と続いていきますね。
したがって、2進数101を10進数に直すと5になります。
このように、2進数から10進数にするときでも、値とその位の単位を掛け合わせて計算します。
10進数から2進数へ
10進数から2進数にするとき方は2種類あります。
解き方1:位の単位を書き、上の位から埋めていく方式
続いて、10進数から2進数に直してみましょう。
こちらも先ほどと同じく、位の単位をまず考えていきます。
解く手順は、
①:位の単位を書く、②:上の桁から、位の単位と値を比べる、③:値のほうが大きければ、そこに値を書く、④:②から③を繰り返す。
です。図で示しますね。
ここでは例として、10進数11を2進数に直してみましょう!
①:まず、2進数の位の単位を先に書きます。これがあると、とても解きやすくなります。
②:11と位の単位を比べて、11のほうが大きい時、11を位の単位で割ります。
11÷8=1余り3
③:この時の商の1を、今割った位の単位のところに書きます。
④:余りの3で、②から③を繰り返します。
その結果、10進数11を2進数に直すと1011という値が求められます。
この解き方は、科目Bで出る可能性があるんだ。
解き方2:筆算を使う解き方
この解き方ではまず、n進数のnで値を割っていきます。
そして出た余りを下から読んだものがそのまま答えになります。
仕組みを解説しますね。
これ、どんどん2で割ってるんです。
図で見ると、色付けされている部分はそれぞれ2の累乗で割り切れている部分です。
逆に余りは、はじき出される部分なんですね。
したがって、2で割っていってはじき出された部分が、下の桁から入力されていくんです。
2進数の計算(小数部分)
2進数を10進数へ
2進数から10進数にする場合は、整数の時と同じように位の単位に値を掛け合わせます。
例として、2進数の数値、0.101で考えてみましょう!
小数点以下の値の桁の単位は1/2、1/22、1/23となっていきます。
したがって、2進数0.101を10進数に直すと、5/8=0.625になります。
流れとしては、位の単位×位の値で、整数と同じだね!
10進数を2進数へ
小数部分でも、10進数から2進数に直してみましょう。
例として今回は、10進数の0.375を2進数に直してみます。
少数の場合は、掛け算を使います。
①:与えられた数に2をかけます。
②:①で出てきた値の小数部分のみを抽出します。
③:①と②を繰り返し、小数部分が0になるまで続けます。
④:出てきた数値の整数部分を上から読んだものが答えです。
これも仕組みを解説していきますね。
10進数の小数を2進数に直すというのは、さっきと逆で「1/2×〇、1/22×□、1/23×△」の形に直すということです。
したがって、〇や□、△の値を求めればいいというわけなんですね。
なので、2をかけて分数部分を消して〇や□を求めていきます。
どうだったかな?
うーん、なかなか難しいですね…
2進数はイメージをつかむまでが難しいよね。
でも、イメージさえつかめばできるようになるんだ。
だから、たくさん練習して慣れていってね。
練習問題
問題1
2進数11010001は10進数で何になるか。
答) 209 最初に位の単位を書き、値と掛け合わせてください。
問題2
10進数50を2進数に直してください。
答) 110010 筆算で解いてみると分かりやすいですよ。
問題3
1バイトのデータで0のビット数と1のビット数が等しいもののうち,符号なしの2進整数として見たときに最大になるものを,10進整数として表したものはどれか。
ア、120 イ、127 ウ、170 エ、240
答) エ 1バイトは8ビットです。つまり、8桁の2進数の数字の中で、一番大きいのを求めればいいんですね。そうすると、「11110000」が一番大きくなり、計算すると240になります。