pulpul 日本の試験

基本情報技術者 概念書 · 基礎理論

情報を扱う論理と数の基礎

要点と定義

情報を扱う基礎には、論理演算、数の表現、有限の桁数による誤差、データから規則性を学ぶ機械学習があります。この節では、それぞれの考え方と、問題でどう判断に使うかを確認します。

論理演算

AND(論理積)は、入力がすべて1のときだけ1になります。OR(論理和)は、少なくとも一つが1なら1、NOT(否定)は0と1を反転します。XOR(排他的論理和)は、二つの入力が異なるときに1、同じときに0です。したがって、AとBに対して「Aを否定してBとANDした結果」と「AとBを否定してANDした結果」をORでまとめると、AとBが異なる場合だけ1になります。この出力条件を四つの入力組合せで確かめれば、回路の働きを判断できます。

機械学習

機械学習は、データや経験から機械が規則性を学び、その学習を使って予測や判断などを行う技術です。人が原因を整理して統計分析することや、機器を通信で遠隔制御することだけでは、機械がデータから学ぶとはいえません。作業結果をもとにロボットが方法を調整し、効率を高める例は、機械学習の活用として考えられます。

位置による数の表現

位取り記数法では、各桁の値は基数の累乗で決まります。16進数の小数第1位は1/16の位で、Cは十進数の12です。よって、16進数の0.Cは12/16=0.75です。小数第2位なら重みは1/16²となるため、桁が増えたときも各桁の重みを足して変換します。

浮動小数点数と丸め誤差

コンピュータが数を有限の桁数で表すと、表現できない細かな部分をそのまま保持できない場合があります。その部分を丸めたり切り捨てたりすることで、厳密な値との差が生じます。これが丸め誤差です。演算結果が扱える最大値を超えるオーバーフローや、ほぼ等しい数の減算で有効数字が失われる桁落ちとは、起きる理由が異なります。

8ビットの反転と2の補数

8ビットの値を符号なし整数として扱い、あふれた桁を捨てる加算は、256を法とする計算です。例えば、数xに加えて結果が0になる値は、256−xに相当します(xが0なら結果も0です)。8ビットすべてをXORで反転してから1を加えると、2の補数、すなわち8ビット加算でxを打ち消す値が得られます。XORの相手が全ビット1なら各ビットが反転し、0なら変化しない、という性質が根拠です。

適用条件と例

論理回路では、入力の全組合せを表にして出力を追う方法が有効です。たとえば、AとBが0,0なら両入力が異なる場合ではないので出力は0、0,1なら1、1,0なら1、1,1なら0です。式で書けば、A XOR Bです。NOTの位置を取り違えた場合や、二つのAND出力をORでまとめず片方だけ見た場合は、表と異なる結果になります。

16進小数の変換では、各桁をその位の重みに掛けて合計します。0.3(16進)なら3×1/16=3/16=0.1875(10進)です。0.CではC=12なので、12×1/16=0.75です。整数部の換算方法だけで小数部を処理しないよう、基数の負の累乗を使います。

浮動小数点数の丸め誤差を考えるときは、まず表現できる桁数に限りがあることを確認します。たとえば小数第2位までしか残せない形式で1/3を表すと、0.33のような近似値になり、真の値との差が残ります。丸め方によって近似値は変わり得ます。許容誤差を超えるかどうかは、必要な精度や後続計算に照らして考えます。

この節の続き

ここまでが冒頭部分です。ログインすると、無料でも1日2節まで全文をお読みいただけます。

アプリでこの節を読む