本文へ移動

基本情報技術者試験 · 学習ガイド

基礎理論

基礎理論とは

基礎理論とは、2進数や論理演算など、コンピュータがデータをどう表し、計算するかの土台となる考え方です。

エルくんが説明する図解。5のビット列→全反転→1加算→−5の3段階。
考え方の例:8ビットの2の補数で−5を作るとき、5の00000101を反転し11111010、さらに1を足して11111011にします。

符号付き整数の計算では、同じビット列でも解釈が変わります。まずビット幅と符号の表現方法を固定して考えます。

基本の仕組み

基本の仕組みの図解。上から「5の00000101」「反転した11111010」「−5の11111011」を縦に並べ、下向き矢印にそれぞれ「反転」「+1」を添える。3段は仕切らず、一本の手順としてつなぐ。
覚えること:8ビットの5を反転し1を足して−5

8ビットの2の補数で−5を作るとき、5の00000101を反転し11111010、さらに1を足して11111011にします。

nビットの2の補数は−2のn−1乗から2のn−1乗−1までを表します。8ビットでは−128から127です。論理演算は各ビットの真偽で扱い、数値の加算とは区別します。

最上位が1だからといって、すべての表現で負数になるわけではありません。符号なし整数なら11111011は251です。

NANDはANDの結果を反転します。入力が00・01・10・11の順なら、ANDの出力は0・0・0・1、NANDは1・1・1・0です。XORは二つの入力が異なるとき1になります。論理式は入力の全組合せを表にして、同じ結果になるかを確認できます。

数の表現と論理の全体像

数の表現と論理の全体像の図解。上部に1本の8ビット列を置き、中央の切替器から上下2方向へ矢印を分ける。上段は「符号なし」の8ビットの範囲、下段は「2の補数」の8ビットの範囲として枠で仕切り、同じビット列でも解釈を先に選ぶことを示す。
覚えること:計算前に符号の扱いを決める

符号なしnビットは0〜2^n−1、2の補数は−2^(n−1)〜2^(n−1)−1を表します。同じビット列でも、符号付きか符号なしかを先に決めてから計算します。

基数変換では各桁の重みを使います。2進数1011.1は8+2+1+0.5=11.5です。16進数へは2進数を4桁ずつ、8進数へは3桁ずつ区切って対応させます(11111011は16進数でFB)。10進数の0.1のように、2進数では有限の桁で表せない小数もあります。

2進数を左へ1ビットシフトすると2倍、右へ1ビットシフトすると1/2(端数は小さい方へ丸め)になります。論理シフトは空いたビットに0を入れ、算術シフトは符号ビットを保ち、右シフトでは空いた上位ビットに符号と同じ値を入れます。

NOTは入力を反転し、NORはORの結果を反転します。AND、OR、XOR、NAND、NORの出力は、次の表のように入力の全組合せで比較します。

数の表現と論理の全体像
表現8ビットの範囲
符号なし0〜255
2の補数−128〜127
数の表現と論理の全体像
入力A・BANDORXORNANDNOR
0・000011
0・101110
1・001110
1・111000

試験に出る

  • 2進数と10進数の相互変換。各桁の重みを足して求める計算。
  • 2進数と16進数は4桁ずつ対応させる変換と、1ビットの左シフトで2倍・右シフトで1/2になる関係。
  • 8ビットの2の補数が表す範囲(−128〜127)と、5の反転+1で−5を作る手順。
  • NAND・XORの真理値。NANDはANDの反転、XORは入力が異なるとき1。
  • 符号付きと符号なしで同じビット列の意味が変わる点(11111011は−5か251か)。
  • 桁あふれを捨てて計算する例(5+(−5)=0)。

重要な言葉

2の補数
負の整数を表す表現方法。ビットを反転して1を足す。
論理演算
0と1の真偽を組み合わせて結果を求める演算。ANDやORなど。
NAND
ANDの結果を反転した論理演算。
桁あふれ
計算結果が表せるビット幅を超えること。

確認問題

確かめよう8ビットの2の補数で00000101と11111011を足すと?

桁あふれを捨てて00000000です。

8ビットの2の補数で5と−5を足すと、桁あふれを捨てて0になる。

XORは、二つの入力が同じときに1になる。

8ビットの2の補数で−5を表すビット列は?

NANDの出力が0になるのはどの入力のとき?

の計算では、同じビット列でも解釈が変わります。まずと符号の表現方法を固定して考えます。

8ビットので−5を作るとき、5の00000101を反転し11111010、さらに1を足してにします。

nビットの2の補数は−2のn−1乗から2のn−1乗−1までを表します。8ビットではから127です。は各ビットの真偽で扱い、数値の加算とは区別します。

が1だからといって、すべての表現で負数になるわけではありません。符号なし整数なら11111011はです。

はANDの結果を反転します。入力が00・01・10・11の順なら、ANDの出力は0・0・0・1、NANDは1・1・1・0です。は二つの入力が異なるとき1になります。論理式は入力の全組合せを表にして、同じ結果になるかを確認できます。

出典・参考資料

試験の公式案内と、この記事の参考にした学習資料です。

編集:Pinternet Works · 更新日:

教材の編集方針・訂正について