テクノロジ系 技術 計算あり

基礎理論・アルゴリズム

コンピュータの数の数え方と、処理の手順の基本をやさしく。

🎯 このレッスンのゴール

  1. 2進数・10進数・16進数を相互に変換できる
  2. ビット・バイト・情報量の単位(K/M/G/T)が分かる
  3. 論理演算(AND・OR・NOT・XOR)の真理値表が読める
  4. 確率・統計の基礎と、代表的なデータ構造・アルゴリズムを説明できる

こんにちは、先生役の「ITモニ太」です。「基礎理論」と聞くと身がまえちゃうかもしれませんが、正体は「コンピュータの数の数え方」と「処理の手順のしくみ」のこと。電卓を使うように、ルールさえつかめば誰でも解けます。一緒に、いちばん土台のところを固めていきましょう。

1. コンピュータは0と1だけで数える

私たちがふだん使う数は、0〜9の10種類の数字を使う10進数(じっしんすう)です。9の次でケタが上がり「10」になりますね。一方コンピュータは、電気が「ながれている/ながれていない」の2状態しか区別できません。そこで、0と1の2種類だけで数える2進数(にしんすう)を使います。

たとえ話:スイッチのオン・オフ

2進数の1ケタは、電気のスイッチ1個と同じです。OFF=0、ON=1。スイッチを何個か並べれば、その組み合わせでいろいろな数を表せます。コンピュータの中身は、この小さなスイッチが膨大に並んでいるだけ、とイメージすると親しみがわきます。

2進数では、1の次のケタはもう上がります。「0、1、(次は)10、11、100…」という具合です。各ケタの重み(位の大きさ)は、右から 1, 2, 4, 8, 16… と2倍ずつ増えていきます。10進数が右から 1, 10, 100… と10倍ずつ増えるのと同じしくみで、土台の数が10か2かのちがいだけです。

2進数 → 10進数(変換のやり方)

各ケタの「重み」を、そのケタが1のところだけ足し算します。例として、2進数の 1011 を10進数にしてみましょう。

2進のケタ1011
重み(位)8421
計算8×1=84×0=02×1=21×1=1

1のところの重みを足すと 8 + 0 + 2 + 1 = 11。よって2進数 1011 は10進数の 11 です。もう一つ、1101 なら 8+4+0+1=13 になります。

具体例:10進数 → 2進数(2で割っていく)

逆に10進数を2進数にするには、2で割って余りを下から並べるのが基本。たとえば 13 なら…
13÷2=6 余り1 / 6÷2=3 余り0 / 3÷2=1 余り1 / 1÷2=0 余り1
余りを下から上へ読むと 1101。最初の例と一致しますね。

2. ビットとバイト

2進数の1ケタ(0か1)を、情報の最小単位ビット(bit)といいます。ビットが8個集まったものを1バイト(byte)と呼びます。これがコンピュータが情報を扱うときの基本のかたまりです。

ここが大事:8ビット=1バイト=256通り

1ビットは0か1の2通り。2ビットなら 2×2=4通り、nビットなら 2のn乗 通りを表せます。よって8ビット(1バイト)では 2の8乗=256通り。0〜255の数や、半角文字1つを表すのにちょうどよい大きさです。

補数(負の数の表し方)のさわり

コンピュータは「マイナス」という記号を持ちません。そこで、引き算を足し算で行うために補数(ほすう)という考え方を使います。2進数では、各ケタの0と1をすべて反転させた数(1の補数)に1を足したもの(2の補数)を、その数の負の値として扱います。

たとえば4ビットで 3(0011)の2の補数は、反転して 1100、+1して 1101。これが「−3」を表します。試験では「2の補数で負数を表す」という考え方を押さえておけば十分です。

3. 16進数(2進数の近道)

2進数は0と1だけなのでケタがすぐ長くなり、人間には読みにくいのが難点です。そこで、2進数を4ケタずつまとめて表す16進数(じゅうろくしんすう)がよく使われます。16進数は0〜9のあとに A・B・C・D・E・F の6文字を足し、10〜15を表します。

10進2進(4ケタ)16進
000000
501015
910019
101010A
131101D
151111F
具体例:2進数 11011011 を16進数に

4ケタずつ区切ると 11011011。表より 1101=D、1011=B。つなげて DB です。8ケタの2進数が、わずか2文字で表せました。これが16進数の便利さです。

4. 文字コード

コンピュータは数しか扱えないので、文字も「どの文字に何番をふるか」という番号表で管理します。これを文字コードといいます。代表的なものは次の2つです。

文字コード特徴
ASCII(アスキー)英数字・記号を7ビット(1バイト内)で表す、最も基本的な文字コード。アルファベット中心で、日本語は表せない。
Unicode(ユニコード)世界中の文字を1つの体系でまとめて扱える文字コード。日本語・絵文字なども含む。符号化方式に UTF-8 などがある。
注意:文字化けの正体

保存したときと読むときで文字コードがちがうと、番号の解釈がズレて文字化けが起きます。日本語を扱う環境では、世界標準のUnicode(UTF-8)が広く使われていることを押さえておきましょう。

5. 情報量の単位

バイトが大きくなると、K(キロ)→M(メガ)→G(ギガ)→T(テラ)と単位の頭につく文字(接頭語)が変わります。約1,000倍ずつ大きくなる、と覚えればOKです(正確には1,024倍=2の10乗のことが多い)。

記号読み大きさ(およそ)身近な例
KBキロバイト約1,000バイト短い文章ファイル
MBメガバイト約100万バイト写真1枚・音楽1曲
GBギガバイト約10億バイト動画・スマホの容量
TBテラバイト約1兆バイト大容量ハードディスク
ビット(b)とバイト(B)は別物

大文字の B はバイト、小文字の b はビットを表すのが原則。通信速度は「100Mbps(メガビット毎秒)」のようにビットで、ファイル容量は「10MB(メガバイト)」のようにバイトで表すことが多い、と区別しましょう。1バイト=8ビットなので、数字の見た目に8倍の差が出ます。

- スポンサーリンク -
広告スペース

6. 論理演算と真理値表

0と1(偽と真、OFFとON)を使った計算を論理演算といいます。コンピュータの判断のしくみそのものです。入力に対して結果がどうなるかを一覧にした表を真理値表(しんりちひょう)と呼びます。代表的な4つを見ていきましょう。

演算意味(ひとことで)
AND(論理積)両方とも1のときだけ1。「かつ」。
OR(論理和)どちらか一方でも1なら1。「または」。
NOT(否定)入力を反転する(0→1、1→0)。
XOR(排他的論理和)2つがちがうときだけ1(同じなら0)。

AND・OR・XOR の真理値表(入力Aと入力Bの組み合わせ)は次のとおりです。

ABA AND BA OR BA XOR B
00000
01011
10011
11110

NOT は入力が1つだけです。NOT 0=1、NOT 1=0 と、ただ反転するだけ。

ベン図でイメージ

2つの円が重なった図(ベン図)で考えると分かりやすいです。ANDは2つの円が重なった真ん中だけOR2つの円すべてXOR重なりを除いた、外側どうしを塗ったイメージ。NOTは「その円の外側ぜんぶ」です。

具体例:条件で考えるAND/OR

「傘を持つ」を1とします。AND=「雨 かつ 外出」の両方が成り立つときだけ傘を持つ。OR=「雨 または くもり」のどちらかなら傘を持つ。日常の「かつ・または」が、そのまま論理演算になっています。

7. 確率・統計の基礎

データを読みとくための基本も、ITパスポートの基礎理論に含まれます。むずかしい計算は出ないので、用語の意味をつかみましょう。

場合の数と確率

場合の数とは「起こりうるパターンの総数」のこと。たとえばコインを2回投げると、表表・表裏・裏表・裏裏の4通りです。確率は「あることが起こる割合」で、(あてはまる場合の数)÷(全部の場合の数)で求めます。サイコロで1が出る確率は 1÷6 です。

平均・中央値・最頻値

用語意味
平均値すべての値を足して、個数で割った値。全体のならし。
中央値(メジアン)値を小さい順に並べたとき、ちょうど真ん中にくる値。
最頻値(モード)いちばん多く現れる値。
具体例:データ {2, 3, 3, 4, 8}

平均値=(2+3+3+4+8)÷5=20÷5=4
中央値=小さい順の真ん中、3番目の値で 3
最頻値=最も多い 3 が2回出ているので 3
同じデータでも、3つの「代表値」は別の数になることがある、というのが大事なポイントです。

正規分布のさわり

身長やテストの点など、多くのデータは「平均のあたりに集まり、両はしに行くほど少なくなる」左右対称の山型になります。これを正規分布といい、釣り鐘のような形(ベルカーブ)で表されます。「平均から極端に外れた値は珍しい」ことを表す、と覚えておきましょう。

8. データ構造

データをコンピュータの中で「どう並べて持つか」の形をデータ構造といいます。代表的なものを整理します。

データ構造特徴
配列(はいれつ)同じ種類のデータを順番に一列に並べたもの。番号(添字)で位置を指定して、すぐ取り出せる。
リスト各データが「次はどこ」という情報でつながった形。途中への追加・削除がしやすい。
スタック後に入れたものを先に取り出すLIFO:Last In First Out)。
キュー先に入れたものを先に取り出すFIFO:First In First Out)。
木構造(ツリー)1つの根から枝分かれしていく階層的な形。フォルダ構成や組織図のイメージ。
たとえ話:スタックとキュー

スタック=食器の皿の積み重ね。上に置いた皿から取るので、最後に置いたものが最初に出ます(LIFO)。アプリの「戻る(元に戻す)」もこの仕組みです。
キュー=レジの行列。先に並んだ人から順に処理されます(FIFO)。印刷の順番待ちなどがこれです。

9. アルゴリズムと流れ図

アルゴリズムとは「問題を解くための処理の手順」のこと。料理のレシピのように、何をどの順でやるかを決めたものです。手順を図で表したものを流れ図(フローチャート)といい、記号には決まった意味があります。

記号意味
だ円(端子)処理の開始・終了を表す。
長方形(処理)計算や代入などの具体的な処理
ひし形(判断)条件でYes / No に分かれる分岐。
平行四辺形(データ)データの入力・出力

代表的な処理:探索と整列

アルゴリズムの中でも、データから目的のものを探す(探索)、データを並べかえる(整列・ソート)は基本中の基本です。

種類名前やり方
探索線形探索先頭から1つずつ順に調べる。素朴だが確実。
探索二分探索並べ替え済みのデータを半分ずつ絞り込む。とても速い。
整列バブルソートとなり合う2つを比べて入れかえる操作をくり返す。
整列選択ソート / 挿入ソート最小値を選んで前に出す/適切な位置に挿入していく。
具体例:二分探索が速いわけ

1〜100の中から数を当てるとき、線形探索なら最悪100回調べます。二分探索は「真ん中の50は? → 大きい/小さい」と毎回半分に絞るので、最大でも約7回で見つかります。ただしあらかじめ並んでいることが条件、という点に注意です。

計算量(オーダー)のさわり

アルゴリズムの「速さ」は、データ数が増えたときに手間がどれだけ増えるかで比べます。これを計算量といいます。線形探索はデータが2倍になると手間も約2倍ですが、二分探索は2倍になっても手間は1回増える程度。同じ目的でも手順しだいで速さが大きく変わるのがアルゴリズムの面白さです。

お疲れさまでした! ここはIT全体の「言葉のもと」になる章です。2進数の変換と、AND/OR、スタック(LIFO)とキュー(FIFO)――この3つだけでも今すぐ言えれば、もう合格に近づいていますよ。さっそく確認テストで力だめしです。
演習確認テスト(全7問)

Q1. 2進数の「1011」を10進数にすると「13」である。

正解は ×。1011 は 8+0+2+1=11 です。13 になるのは「1101」のほうです。

Q2. 1バイトは8ビットで、256通りの状態を表せる。

正解は 。1バイト=8ビット。2の8乗=256通り(0〜255)を表せます。

Q3. 16進数の「F」は、10進数の「15」を表す。

正解は 。16進数は A=10、B=11…と続き、F=15です(2進では 1111)。

Q4. AND演算は、入力のどちらか一方でも1なら結果が1になる。

正解は ×。それはORの説明です。AND両方とも1のときだけ結果が1になります。

Q5. スタックは「後に入れたものを先に取り出す」LIFO方式である。

正解は 。スタックは皿の積み重ねと同じLIFO(Last In First Out)。先入れ先出しのキュー(FIFO)と対になります。

Q6. データ {2, 3, 3, 4, 8} の平均値は4、最頻値は3である。

正解は 。平均は20÷5=4、最も多く出る値(3が2回)が最頻値で3です。中央値も真ん中の3になります。

Q7. 二分探索は、データが並べ替えられていなくても使える探索方法である。

正解は ×。二分探索はあらかじめ並んでいることが前提です。並んでいないときに使えるのは線形探索です。

暗記一問一答(全8問)
Q1. 情報の最小単位(0か1の1ケタ)を何という?
A. ビット(bit)です。ビットが8個で1バイトになります。
Q2. 2進数の「1101」は10進数でいくつ?
A. 13です(8+4+0+1)。
Q3. 2進数を4ケタずつまとめて表す、人間に読みやすい表記は?
A. 16進数です。0〜9のあとに A〜F を使います。
Q4. 世界中の文字を1つの体系で扱える文字コードは?
A. Unicode(ユニコード)です。代表的な符号化方式に UTF-8 があります。
Q5. 「2つの入力がちがうときだけ1」になる論理演算は?
A. XOR(排他的論理和)です。同じなら0、ちがえば1になります。
Q6. 「先に入れたものを先に取り出す」データ構造とその方式名は?
A. キューで、方式はFIFO(First In First Out)。レジの行列のイメージです。
Q7. 値を小さい順に並べたとき、ちょうど真ん中にくる代表値は?
A. 中央値(メジアン)です。最も多く出る値は最頻値(モード)です。
Q8. 流れ図で「条件による分岐」を表す記号の形は?
A. ひし形(判断)です。Yes / No で処理が分かれます。開始・終了はだ円です。

📌 このページのまとめ

  • コンピュータは0と1の2進数で数える。各ケタの重み(1,2,4,8…)を足せば10進数に変換でき、2進「1011」=10進「11」。
  • 1バイト=8ビット=256通り。負の数は2の補数で表す。
  • 16進数は2進数を4ケタずつまとめた表記(A〜Fで10〜15)。文字はASCII・Unicodeなどの文字コードで管理。
  • 情報量は K→M→G→T で約1,000倍ずつ。B=バイト、b=ビットの区別に注意。
  • 論理演算は AND(両方1)・OR(どちらか1)・NOT(反転)・XOR(ちがえば1)。真理値表とベン図で整理。
  • 統計の代表値は平均・中央値・最頻値。多くのデータは山型の正規分布になる。
  • データ構造は配列・リスト・スタック(LIFO)キュー(FIFO)・木構造。
  • アルゴリズムは処理の手順。探索(線形・二分)、整列(バブルソート等)があり、手順しだいで計算量=速さが変わる。