[記事公開日]2014/12/03
[最終更新日]2016/11/30

基本情報技術者試験 1-2(基数)

 

 

数字についてもう少し触れておきます。

 

「●進数」という表現があります。

 

普段私たちが使っている数字は、「10進数」です。

1~9までを使って表現し、「10」になろうとすると桁上がりするからです。

つまり、二文字を使わないと表現できないということです。

 

では、「2進数」はいくつで桁上がりするでしょうか。

2になろうとすると桁上がりします。

 

例えば、「2進数」表記では、以下のように表現します。

 

0・・・0

1・・・1

2・・・10

3・・・11

4・・・100

5・・・101

 

同じように・・

 

「4進数」表記では、

0・・・0

1・・・1

2・・・2

3・・・3

4・・・10

5・・・11

 

「8進数」表記では、

0・・・0

1・・・1

2・・・2

3・・・3

4・・・4

5・・・5

6・・・6

7・・・7

8・・・10

9・・・11

10・・・12

 

なんとなく分かりましたか?

 

最後に「16進数」表記を見てみます。

16進数では、「0~9」、と「A~F」で表します。

16進数

 

先ほどと同じように16を表現しようとすると桁上がりします。

 

16進数だけちょっとややこしいですね。

 

これらの「●進数」の問題は、「2進数から8進数への変換」や「16進数から→2進数への変換」などが問題にでます。10進数(私達が普段使っている進数)や2進数に戻したりして変換してみましょう。

 

 

<例1>

「10進数では13。では16進数ではいくつになるか?」

答え⇒「D」 みたいな。

 

<例2>

2進数 ⇒111
10進数 ⇒(4×1)+(2×1)+(1×1)=7

8進数 ⇒7

16進数 ⇒7

 

2進数は簡単で、

1ケタ目:2の1乗

2ケタ目:2の2乗

3ケタ目:2の4乗

4ケタ目:2の8乗

を計算します。

最後に合計すればOKです。

 

<例3>

2進数 ⇒11111111
10進数 ⇒255

(1+2+4+8+16+32+64+128=255)

 

<例4>

2進数⇒1100

10進数⇒12(4+8)

16進数⇒C

 

※16進数は「10」が「A」になると覚えましょう。

 

<例5>

16進数⇒3A

10進数⇒(16×3)+(1×10)=58

 

 

↓少しだけ難しい

・小数点の「●進数」の表し方

小数点から左にいくにつれて、1倍、2倍、4倍、8倍と”重み”がありましたね。

その逆で、小数点から右にいくにつれて、1/2倍、1/4倍と表現します。

 

2進数⇒0.1

10進数⇒1/2

 

2進数⇒0.11

10進数⇒1/2+1/4=3/4

 

 

2進数⇒0.111

10進数⇒1/2+1/4+1/8=7/8

 

8進数表記の「0.01」なら、

 

「1/16」となります。

 

 

★計算するときは、「小数」を無理に使うのはあまりオススメできません。計算するときは「分数」がよいです。といいうのも、少数で計算すると途中で割り切れないときが出てきたり、解答欄も「分数」から選ぶようになっていたりするからです。計算は分数で!

 

さて、次の問題はどうでしょうか。

 

10進数⇒0.375

2進数⇒0.011

 

(ややこしい・・)

 

上のように「小数点のある●進数を、2進数にしろ~」と言われたら、小数点が「0」になるまで、ひたすら「2」をかけ続けてください。そして、整数の部分だけ抜き出していきます。

※8進数に変換せよといわれたら、ひたすら8をかける。

 

0.375×2=0.75 ⇒0
0.75×2=1.5 ⇒1
0.5×2=1.0 ⇒1

⇒0.011

 

最初は「0.」となります。

小数点ですから、何進数にしようが、「0.~」から始まるはずです。

 

★もし不安でしたら、逆の計算を(2進数→10進数)してみましょう。

<0.011>

0×1/2=0

1×1/2×1/2=1/4

1×1/2×1/2×1/2=1/8

 

↑大丈夫そうですね。

 

もうひとついきます。

 

10進数・・・0.3

8進数・・・

0.3×8=2.4

0.4×8=3.2

 

0.2×8=1.6

0.6×8=4.8

0.8×8=6.4

0.4×8=3.2

 

え~・・・

 

0.231463・・・と続くみたいです。

 

「0.4×8」が2回でてきたので、どうやら永遠に続くようです。(笑)

 

 

このように、割り切れない少数を「無限小数」といいます。

 

↑テストにでます

 

逆に、割り切れる少数なら「有限小数」といいます。

 

『無限小数はどれか?』

『有限小数はどれか?』

と聞かれたら、4択を片っ端から解いていくしかないです。

 

<例7>

10進数⇒1.6875

2進数⇒
0.6875×2=1.375
0.375×2=0.75
0.75×2=1.5
0.5×2=1.0

⇒1.1011

 

また、難しいのいきます。(笑)

 

<例8>

2進数⇒1100.01

8進数⇒14.2

 

まず、2進数から8進数に変換したいなら、2進数を3ケタずつ区切ってください。

 

もちろん、整数と少数は区別します。

 

そうすると、「001」「100」.「010」となります。
両端の空白は0で埋めると分かりやすいです。

 

次に、3桁ずつを2進数で計算します。

001→1
100→4
010→2

 

⇒答え:14.2

 

●16進数→10進数への変換

16進数⇒3A.5C

10進数⇒(16×3)+(1×10)+(5/16)+(12/256)

=58+23/64
=3735/64

 

★有限小数と無限小数

○進数にしたときに割り切れるのが、「有限少数」。

○進数にしたときに割り切れないのが、「無限少数」。

 

↑さっきも述べましたが。。

 

 

10進数⇒0.3

これを8進数にしようとすると・・

0.3*8=2.4
0.4*8=3.2
0.2*8=1.6
0.6*8=4.8
0.8*8=6.4
0.4*     ・・・と無限ループになります。無限小数です。

 

10進数⇒0.5

これを8進数にしようとすると・・
0.5*8=4.0

割り切れましたから、これは有限小数です。

 

 

 

最後に!

 

●次の式は何進法で表現しているか。
「131-45=53」

 

つまり、何進数で計算したらこうなるかという問題です。

 

・・難しいですね。

 

「45+53=131」で考えてみましょう。

 

最後の1ケタに注目します。

「5+3=1」になるのはどれか?

 

8になると、繰り上がって、1の位が1になってしまう。

 

ということは、「7進数」ということ。

 

●10進数
5+3=8

 

●6進数

5+3=12

(1の位が2になるから違うという)

 

●7進数

5+3=11

 

 

●8進数

5+3=10

 

 

以上

 

長かったですね(笑)

 

yamatunes