基本情報技術者(基礎理論①)

基本情報技術者(基礎理論①) 基本情報技術者

この記事では
各種データの単位、n進数の数え方、小数、基数、桁の重み等についてご紹介します。
この記事を読めばコンピュータがどのように計算しているのか、私たちが行う計算とどう違うのかを学ぶことができます!

各種データの単位

ビットとバイト

みなさんはビットバイトという言葉を聞いたことがあるでしょうか。「大容量~バイト!」といった文言を家電量販店などで耳にした人もいるかもしれませんね。
では、「バイト(byte)」とは一体何なのでしょうか。結論から言うと「データの単位」です。
バイトは「ビット(bit)」が8個集まってできたデータの集まりのことを言います。
ビットはコンピュータが扱うデータの最小単位です。
1ビットは「0」か「1」のどちらかの値を表現します。したがって1ビットは2通りの情報を保存できるということになります。
なので、1バイトは1ビットが8個集まっているので28(256)通りの情報を保存できます。

ちなみにですが、基本技術者試験では「10011110」のような並びで表現された数値を「ビットパターン」または「ビット列」と言います。

狼煙(のろし)も1bitの情報と言えます。
①0bit(狼煙が当たっていない状態)=安全
②1bit(狼煙が上がっている状態)=危険
身の回りの1bitを探してみましょう!

多様なデータ単位

「スマホ、ギガし放題!」などの広告をどこかできいたことはないでしょうか。
実はこの「ギガ」はデータを簡潔に表現するために用意された単位の一種です。
というのも、コンピュータの世界では、とても大きい値や、とても小さい値をよく取り扱います。
「今月のスマホの通信容量残り3,000,000,000バイトしかない…」と言っても「?」ですよね…
なので人間にもわかりやすいように以下の表のような単位を使用します。

単位単位を表す記号10進数表記累乗表記
ペタP1,000,000,000,000,0001015
テラT1,000,000,000,0001012
ギガG1,000,000,000109
メガM1,000,000106
キロk1,000103
11
ミリm0.00110-3
マイクロμ0.00000110-6
ナノn0.00000000110-9
ピコp0.00000000000110-12

普通に生活しているとテラバイトくらいまでしか聞かないと思います。
しかし近年のAIブームでより多くの情報を保存する必要がありペタバイト(PB)、エクサバイト(EB)といった単位も一般の人に浸透するかもしれません。

n進数の数え方

10進数

10進数とは、0~9の数字を用い、値が「10」になるとき桁が一つ上がる表記法です。
私たちが普段から一番使用している表記法なので、すでにあなたは習得されています。
ご安心ください!

0,1,2,3,4,5,6,7,8,9ときて桁が上がって10,11,12,13・・・というのが10進数です。
10進数が一番利用される理由はやはり人間の指が10本だから。という説が最有力だそうです。別の星に行ったら16進数とか使われていたり…?

2進数

2進数とは、0、1の数字を使い、値が「2」になるとき桁が一つ上がる表記法です。
0、1までは10進数と同じです。しかし2進数では「2」で桁が上がるので10進数で「2」は2進数では「10」とります。したがって10進数で「3、4、5・・・」は2進数では「11、100、101」と数が増えていきます。

普段こんな数え方はしないですよね。でも実はコンピュータはむしろこっちの方が計算しやすいんです。これはコンピュータが電気信号のONとOFFだけで情報を取り扱っていることに起因しています。

16進数

16進数は値が「16」になるとき桁が一つ上がる表記法です。「ん?16?」となったあなたは正しいです!私たちが普段使用しているアラビア数字では「0~9」の10種類しか表現できません。
そこで16進数では「A~F」までのアルファベットを使用して表現します。
10進数の「10、11、13、14、15」は16進数では「A、B、C、D、E、F」となります。

おいおい、またこんな変な数え方増やしやがって…と思いませんか?
でも実は人間に寄り添うための数え方なんです。
コンピュータが用いている2進数は桁数が非常に大きくなりがちで人間には非常に使いにくいです。そこで16進数が登場します。
実は2進数の4桁分を16進数一桁で表せるのです!

小数

小数は、「小数点」を境にし2つの部分に分けて数値を表現します。小数点より左にある部分を「整数部」、小数点より右にある部分を「小数部」といいます。

でも単に小数といっても「有限小数」、「無限小数」、「循環小数」など様々な種類の小数が存在します。(小数が苦手だった私は苦労しました…が、基本情報技術者試験では知っている前提で問題を出してきます。恐ろしい…)

有限小数

有限小数というのは、小数部の桁数が有限である小数のことを言います。
「1.5」や「0.1」、「0.021」などが例です。

無限小数

無限小数というのは、小数部の桁数が無限である小数のことを言います。

みんな大好き円周率も無限小数に含まれます「3.1415・・・」(私はここまでしか覚えていません笑)。

循環小数

循環小数は、無限小数において途中の桁から同じ数字の列が無限に繰り返される小数を指します。
例として2つ挙げます。
①1÷3をすると「0.333・・・」や、
②1÷7をすると「0.124857124857・・・」と「124857」が繰り返されます。

基数

基数というのは、桁上がりが発生する基準の数です。つまり先ほどご説明していた、n進数だと、10進数は「10」、2進数は「2」、16進数は「16」ということになります。
ただ、表記法に依らず、本質的に表現している値は同じとなっています。

10進数2進数8進数16進数
0000
1111
21022
31133
410044
510155
611066
711177
81000108
91001119
10101012A
11101113B
12110014C
13110115D
14111016E
15111117F
16100002010

ちなみに、「10」だけだと2進数なのか、8進数なのか、10進数なのか、16進数なのか・・・n進数なのかわからないですよね。これを解消するために以下のような表記で表現します。
【例】
・16進数の「10」→(10)16
・2進数の「10」→(10)2 

桁の重み

桁の重みというのは、いわゆる「」のことです。私たちは普段10進数を使っているので無意識に使用していますが、小学生の時に1の位、10の位、100の位・・・というのを習いましたよね。
まさにあれが桁の重みなのです。
基数によって桁の重みが違うので、数の大きさは「桁ごとに重みを掛け算し合計する」ことで表現されます。

指数

指数とは、その数を何回掛けるか示す数です。指数は対象となる数字の右肩につきます。例として「256」は「2×2×2×2×2×2×2×2」ですので「28」となります。
大きい数を扱うコンピュータの数を人間が見るとき指数があると認識が容易になります。

ちなみにスマホやPCを購入するときの保存領域のサイズについて32GB、64GB、128GB、256GB・・・とかよく聞きくと思います(最近は1TBなんてものも…)。中途半端な数字だなと思ったことはありませんか?
この数字、実は全部2の指数で表すことができるんです。コンピュータは2進数でデータをやり取りしているので非常に取り扱いやすいんですね。

まとめ

いかがだったでしょうか。今回のポイントを以下にまとめます。

①データの最小単位はビット、8ビットで1バイトになる
②k(キロ)、M(メガ)、G(ギガ)、T(テラ)などの人間に寄り添った単位がある
③桁の上がるタイミングが違うn進数がある
④小数には有限小数、無限小数、循環小数(無限小数の一種)がある
⑤桁上がりが発生する基準の数を基数という
⑥同じ数を何回かけるかを示した数を指数という



コメント