応用情報技術者試験 - SE娘の剣 -

応用情報処理技術者試験の対策サイトです。 応用情報処理技術者試験の午前問題を中心とした基礎用語の解説を中心に掲載します。書き始めたばかりなので、内容はまだまだ不十分です。少しずつ追記していきます

2進数をはじめとした基数

f:id:mamori_yuto:20181027120143j:plain



ここでは、2進数などの基数について解説します。

 

 

1.2進数とは

我々が日常的に使っている数字は、10進数を使っています。一方、コンピュータでは、0と1の2つの数字だけを使います。これを2進数と言います。2進数以外に、ネットワークでは16進数も使います。
意味としては、0と1の2つの数字で表すものが2進数、0~9の10個の数字で表すものが10進数、0~9、A~Eの16個の数字(と文字)で表すのが16進数です。

2.基数とは

基数とは、桁が上がる基準となる数のことです。この言葉だけ聞くとよくわからないでしょうが、我々が日頃の買い物などで使っているのは10進数で、この基数は10です。また、2進数の基数は2で、16進数の基数は16です。

たとえば、2という数字を例に考えます。
10進数では「2」と表現され、桁が変化しません(つまり1桁)。ですが、2進数で2を表現すると10になり(桁が上がります)。
同様に、15は10進数では15となって2桁ですが、16進数ではFです。16に満たないので桁が上がらず1桁です。

f:id:mamori_yuto:20181027120212j:plain


16進数の場合は、16になってはじめて桁が上がるということですね。

 

その通りです。ですから、15までの数を1桁で表現できなければいけません。
そこで、10→A、11→B、12→C、13→D、14→E、15→Fと表現されます。
逆に、2進数は2という数字で桁が上がってしまいます。なので、2以上の数字は要りません。だから、0と1だけで表現されます。

たとえば、10進数で30という数字は、2進数では11110、16進数では1Eです。
まあ、基数という言葉の意味をあまり深く考えず、「何進数なのか?」と置き換えて考えればいいでしょう。 つまり、0と1の2つの数字で表すものが2進数、0~9の10個の数字で表すものが10進数、0~Eの16個の数字(と文字)で表すのが16進数です。

3.基数変換の方法(10進数に変換)

2進数を10進数にする場合や、16進数を2進数にする方法を解説します。
言葉で解説するよりも、実際の変換を見てもらった方が分かりやすいと思います。

基数変換
10進数で解説します。このように、各位の値(1の位が8、10の位が2)に、基数の累乗(1の位は10の0乗、10の位は10の1乗)をかけて、足したものが10進数の値になります。

 

4.基数変換(10進数を変換)

では、次に10進数を2進数や16進数に変える方法を説明します。
考え方は上の図と同じです。たとえば、上の変換の小数点を無くしたものですが、5という数字や298という数字は、以下の式で表されます。なので、2進数では5、16進数では12Aとなります。
kisuu
応用情報技術者試験を勉強する成子
 
でも、その計算をどうやるのですか?
多くの方がやっている方法ですが、以下のように、基数で値を割っていきます。これ以上割れなくなったらおしまいで、その余りを逆から見て行くと、進数変換ができます。下図のように、10進数の5は2進数で101、298は12Aになることが分かります。
2

 

5.基数変換(10進数を変換:小数)

10進数の0.375を2進数にするにはどうしたらいいのでしょうか。
2進数の小数を復習しましょう。
2
このように、2進数で表された小数は、2倍していくと1になります。また、上記の小数点第3位のところをみてもらうとわかるように、小数点第三位のところが1であれば、2を3倍すると1になります。

では、2倍していきましょう。
0.375 2倍 ⇒0.75  1にならないので、小数点第1位は0
     さらに2倍 ⇒1.5 1になったので、小数点第2位は1
     残りの0.5を2倍 ⇒1 1になったので、小数点第3位は1

2進数表記で0.011となります。

 

6.基数に関する過去問

(1)H20秋SW午前問1

問1 基数変換に関する記述のうち,適切なものはどれか。
ア 2進数の有限小数は,10進数にしても必ず有限小数になる。
イ 8進数の有限小数は,2進数にすると有限小数にならないこともある。
ウ 8進数の有限小数は,10進数にすると有限小数にならないこともある。
エ 10進数の有限小数は,8進数にしても必ず有限小数になる。




有限小数無限小数に関しては、別途記事を確認ください。

正解はアです。

 

(2)H28春AP問2
問2 10進数123を,英字A~Zを用いた26進数で表したものはどれか。ここでA=0,B=1,…,Z=25とする。
ア BCD
イ DCB
ウ ET
エ TE




基数である26で割り算をします。
すると4(=E)と19(=T)であることが分かります。
1
【正解】ウ


(3)H27春AP問2
問2 2桁の2進数x1x2が表す整数をxとする。2進数x2x1が表す整数を,xの式で表したものはどれか。ここで,int(r)は非負の実数rの小数点以下を切り捨てた整数を表す。
1-1H27-1


【正解】ウ

(4)H25春AP問1
問1 αを正の整数とし,b=a2 とする。αを2進数で表現するとnビットであるとき,bを2進数で表現すると高々何ビットになるか。
ア n+1   イ 2n   ウ n2   エ 2n


難しい問題ですね。
分からない場合は、数字を当てはめるといいでしょう。a=10、b=100
a(=10)を2進数にすると、1010で4ビット、n=4
b(=100)を2進数にすると、1100100で、7ビット
ア n+1=5
イ 2n=8
ウ n2 =16
エ 2
n=16  であり、最も近いイがなんとなく答えではないかとあたりをつけることができる。
【正解】イ