基本情報処理技術者試験に合格しよう

Webデザインの勉強の傍ら独習で基本情報技術者試験合格を目指す

文字コード

コンピューターの内部は0と1のみで表現されているのにもかかわらず、文字を扱うことが出来るのは文字の一つ一つに「文字コード」という特定の2進数が割り当てらているためです。

代表的な文字コード

文字コードには「シフトJIS」「ASCIIコード」「ECUコード」などの様々な種類がある。

ASCIIコード

「American Standard Code for Information Interchange」ANSI(米国標準規格協会)で定められ、7ビットと検査用冗長ビット1ビットで表す。

ASCIIコードは米国標準で英字、数字、特殊文字および制御文字

EBCDIC

「Extended Binary Coded Decimal Interchange Code」8ビットからなる文字コード

EBCDICIBM社が開発し汎用機を中心に普及

JISコード

「Japan Industrial Standard」日本工業規格。ローマ字用7単位符号やローマ字・片仮名用8単位符号やJIS漢字コードがある。

JISコードはひらがなや漢字は1文字を2バイトで表現

シフトJISコード

JIS漢字コードを変換したもので、1バイト目で漢字かどうかを判別し、英数字・カナなどと混同が可能。

シフトJISコードは日本のパソコンの標準文字コードで1バイト文字と2バイト文字の混在が可能

ECU

「Extended Unix Code」UNIXにおける多言語対応の一環として制定された。

ECUは拡張UNIXコードでUNIX上で漢字が扱える

UNICODE

各国の言語のデータ交換が円滑に出来る様に制定された。

UNICODEは単一コードで世界各国の文字を統一する

ゾーン10進数・パック10進数

コンピューター内部で数値を表現するのに使われるコードとして、2進数10進数とも呼ばれるBCDコードがあります。

BCDコード

BCDコードは、10進数1桁の数字を2進数4ビットで表したものです。2進数4ビットだと16通りの表現ができるが、BCDコードでは1桁の数字のみ表すので、10~16(2進数で1010~1111)までは使用しません。

例えば10進数「987」をBCDコードで表すとそれぞれの位を2進数4ビットに変換するので「1001 |  1000 | 0111」となる。

ゾーン10進数

ゾーン10進数は10進数1桁を8ビット(=1バイト)で表わしたものです。上位4ビットのゾーン部(最下位バイトは符号部)と呼ばれる部分で数値データであることを表し、下位4ビットは先に挙げたBCDコードで数値を表す。

先程同様10進数「987」をゾーン10進数で現すと「00111001 | 00111000 | 11000111」となる。

試験ではゾーン部や符号部のビットは問題中に書かれている。
ゾーン10進数は、ゾーン部(符号部)+数値部の1バイトで表す。

パック10進数

パック10進数は、10進数2桁を1バイトで表したものです。数値部はBCDコードを使って表し最下部に符号部を追加します。偶数桁の場合符号部を足すと2桁にならないので先頭に「0」を追加します。

例えば「1234」をパック10進数で表すと、「0000 | 0001 | 0010 | 0011| 0100 | 1100」となります。先頭の「0000」は0を2進数で追加し、最下部は「+」であることを表しています。

パック10進数は、数値部+数値部(最下部は符号部)の1バイトで表す。

シフト演算

論理シフト

あふれたビット数は捨て、空いたビットは0が入る

算術シフト

算術左シフト

算術左シフトは符号ビットはそのままで、あふれたビット数は捨て、空いたビットは0が入る

算術右シフト

算術右シフトは符号ビットはそのままで、あふれたビット数は捨て、空いたビットは符号ビットと同じビットが入る

まとめ

nビット左シフト → 2^n倍
nビット右シフト → 1/2^n倍

誤差

PC内部では、数値を指定されたビット数で表現しているために計算などの途中で誤差が生じます。

けたあふれ誤差

けたあふれ誤差は、演算結果がPCで指定されたビット数で表現できる範囲を超えることで発生する誤差。

最大値を超えることをオーバーフロー
最小値を超えることをアンダーフロー

 丸め誤差

 丸め誤差は、演算結果を指定された有効桁数で表すために四捨五入、切捨て、切り上げを行うことで発生する誤差。

丸め誤差は四捨五入、切捨て、切り上げ

けた落ち

けた落ちは、絶対値のほぼ等しい二つの数の差を求めたときに有効桁数が減るために発生する誤差。

桁落ちは有効桁数が減る

情報落ち

情報落ちは、絶対値の大きな数と小さな数の演算を行った際に演算結果が反映されないために発生する誤差。絶対値の差が少ない順に演算を行うことで情報落ちを回避する。

情報落ちは小さな数が演算結果に反映されない

打ち切り誤差

打ち切り誤差は、浮動小数点の計算処理を指定した規則で打ち切ることによって発生する誤差。

打切り誤差は計算処理を途中で止める