基本情報処理技術者試験
勉強メモ

基本情報処理技術者試験の自分用勉強メモです.
自分が後から見返してわかればおkのスタンスで書いてますので悪しからず.

2進数って何

「0,1」で数字を表現する.10進数の2は2進数では10.(「じゅう」ではなく「いちぜろ」と読む)また,この0と1で表される数値のパターンをビットパターンという.
コンピュータ内部では数値はもちろん,文字や画像,そして音声などのデータも2進数で表現される.本来数値でないものを数値に置き換えて表したものを符号またはコードという.

単位

2進数の1桁を1ビット(binary digitの略)という.例えば1010は4桁の2進数なので4ビットである.
また,8ビット=1バイトという.

(例)
1010 = 4ビット
10100110 = 8ビット = 1バイト
1111001011100001 = 16ビット = 2バイト

1ビット(1桁)が表すことのできるデータは0,1の2通り(2^1)なので,nビットで表すことのできるデータは2^n通りである.

2の補数表現

符号なし整数

その名の通り符号のない整数,つまり非負の数値.

符号あり整数

符号のある整数,つまり負の数も扱う.2進数の場合最上位桁(符号ビットという)が0なら正,1なら負である.

2進数の負の数

2の補数表現を用いる.

(例):0010の負の数(つまり-2)を求める
1, すべての桁を反転させる(0010 → 1101)
2, 反転したものに1を加える(1101 + 0001 = 1110)
3, 出てきた値が答え
※実際,0010 + 1110 = 0000 より,正しい.(桁上がりは無視)

2進数の小数

固定小数点形式

任意の桁の間に小数点(.)を置くことをあらかじめ決めておく形式.小数点以降の重みは1/2, 1/4, 1/8, …と続いていく.負の小数は2の補数表現で表す.

浮動小数点形式

小数aをa = f*r^e の形であらわす.
f:仮数部
r:基数
e:指数部(eはrの肩の値を2進数に変換した値)

シフト演算

論理シフト

2進数のデータを任意の桁数ずらす.ずらした後にできる空白の桁はすべて0で埋める.

算術シフト

シフトに乗算,除算が絡んでくるのが算術シフト.
左に1ビットずらすと2倍,右に1ビットずらすと1/2になる.
シフトするだけでは2^n倍しかできないので,3倍などの場合は加算と併用する.