【基本情報処理技術者対策】基数・論理演算・カルノー図を図解解説

基本情報技術者試験対策

基本情報処理技術者試験 午前で最初の方で頻出の「基数」を初心者向けに図解で解説します。
2進数と10進数の変換方法、論理演算、カルノー図まで分かりやすく学べます。

コンピュータの数の表現

基数とは

基数とは「何桁で位上がりするか」を表す数です。
普段我々が使用している数字は、10進数でこれは10で位上がりますが、コンピュータは2で位上がりする2進数が使われます。

2進数とは

私たちが普段使っている数字は「10進数」ですが、コンピュータは電気信号のON/OFFで表現するため、ON/OFFを「0」と「1」で表現します。
このように「0」と「1」だけで表現する数値を「2進数」といいます。

私たちが普段使っている10進数は、0〜9までの10種類の数字で表現しますが、これは「10進数」です。

2進数とは

ビット(bit)とバイトとは

情報を「0」か「1」の2進数で処理する際の、1桁分を「1 bit」と呼びます。
そして、8bit は 1バイト(byte)と呼びます。

例:10101100 → 8bit → 1byte

2進数⇔10進数変換

2進数の読み方(2進数から10進数への変換)

10進数では、1の位、10の位、100の位…と10倍ずつ増えていきます。

一方、2進数では、1、2、4、8、16…と2倍ずつ増えていきます。

例えば2進数「101」は、以下のように求めることができます。
1×2² + 0×2¹ + 1×2⁰
= 4 + 0 + 1
= 5

2進数から10進数への変換方法

小数の2進数から10進数への変換

上で説明した整数の場合と考え方は同じで、小数点以下の値は以下の計算で求めます。

  • 重み×値:小数点から右へ向かって、第1位を 2の-1乗(0.5)、第2位を2の-2乗(0.25)、第3位を2の-3乗(0.125)… とし、2進数の各桁の数字(0 または 1)に、その桁の重みを掛けます。
  • 足し算:掛け合わせた結果をすべて足し合わせます。
小数の2進数から10進数への変換

10進数から2進数への変換

10進数を2進数へ変換する場合は、2で割り続けて余りを求めます。
最後に余りを下から読むことで、2進数へ変換できます。

例:10進数「9」は、2進数「1001」になります。

10進数を2進数へ変換

余りを下から読めば2進数となります。

10進数を2進数へ変換

小数の10進数から2進数への変換

  • 対象の小数に2を掛けます。
  • 掛け算の結果(積)の整数部分(0または1)を取り出して記録します。
  • 残った「小数部分」を同じように小数に2を掛けて、整数部分を記録します。
  • 記録した整数部分を、計算した順(上から下)に並べます。

10進数の小数0.625を2進数に変換してみます。

  • 0.625 × 2 = 1.25 ・・・整数部: 1
  • 0.25 × 2 = 0.5 ・・・整数部: 0
  • 0.5 × 2 = 1.0 ・・・整数部: 1
  • 小数部分が0になったので、整数部を上から繋いで「0.101」が答え

2進数の計算

2進数の足し算は、10進数と同様に右側の桁から順に計算しますが、「2」になったら桁上がり(繰り上がり)するのが基本ルールです。

2進数の計算

負の数(補数)

コンピュータは0と1しか扱えません。
では、「-1」や「-10」のような負の数は、どのように表現しているのでしょうか。
そこで使われるのが「補数」という考え方です。

2の補数とは、コンピュータが負の数を表現するための方法で、次のようにすると2の補数となります。

  • 0と1を反転する
  • 最後に1を加える

8ビットで「5」を表すと、「00000101」ですが、これを2の補数にしてみます。
 ① 00000101を反転すると、11111010となります。
 ② さらに1を加えると、11111011となります。
これが「-5」を表す2の補数です。

小数の表現

コンピュータは整数だけでなく、小数も0と1で表現しています。
表現方法に固定小数点と浮動小数点の2つがあります。

固定小数点

固定小数点数とは、小数点の位置を固定して数値を表現する方法です。

例えば、「小数点以下2桁」と決めておけば、1234 を「12.34」として扱います。

固定小数点数は、計算が高速でシンプルという特徴がありますが、一方で扱える数値の範囲が狭いため、大きな数や非常に小さな数の表現には向いていません。

浮動小数点

浮動小数点は小数点の位置を固定せず(浮動させ)、「符号」「仮数」「指数」の3つの情報に分けて管理することで、極めて幅広い数値を効率よく表現できます。

  • 符号:正の数が0、負の数が1
  • 指数部:2のn乗のnの部分
  • 仮数部:小数点以下の値を格納
浮動小数点

10進数0.25を浮動小数点へする例で説明します。

本書は16進数についての記載はありませんが、試験には16進数の問題も出ます。
16進数はこちらを参照ください。

論理演算とビット演算

論理演算とは

コンピュータ内部では、すべてのデータが「0」と「1」の組み合わせで表現されています。
論理演算は、1「真(True)」または0「偽(False)」だけを使った計算です。
基本情報技術者試験では、表のAND、OR、NOT、XORが出ます。

演算説明記述方法
AND両方が1なら1
(計算方法は掛け算)
A AND B
ORどちらかが1なら1
(計算方法は足し算)
A OR B
NOT0と1を反転NOT A
XOR異なるとき1A XOR B

真理値表

真理値表とは、論理演算の結果を一覧表にしたものです。

AND

XYX AND Y
000
010
100
111

OR

XYX OR Y
000
011
101
111

XOR

XYX XOR Y
000
011
101
110

論理式

論理式とは、条件を論理演算子(AND、OR、NOT など)で組み合わせた式です。
結果は「真(1)」または「偽(0)」で表されます。

記号説明演算使用例
かつANDX ∧ Y
XY
またはORX ∨ Y
X+Y
¬否定NOT

カルノー図とは

カルノー図は真理値表を整理して見やすくした表の一種ですが、論理式を簡単に整理し、できるだけ少ない論理式に簡略化するために使う表です。

実際にカルノー図から論旨式を作成してみます。

腕試し(理解テスト)

腕試し(理解テスト)に挑戦する場合はこちらをクリック。

コメント

タイトルとURLをコピーしました