5月30日(金)1コマ目
今日、やったこと [確認テスト]ビットシフト 誤差(オーバーフロー、アンダーフロー、丸め誤差) 今日のホワイトボード 誤差 コンピュータで数値処理をする際、意外と結構誤差が生じる。 誤差が発生する理由によってXXX誤差と命名されており、基本情報にもよく出題される。 xxx誤差と理由の関係が意外とわかりずらい。 まず、大前提として、 コンピュータで数値を扱う際、保存するためのエリアはサイズが決まっている。 例えば、char型変数なら1バイトのように。 データエリアのサイズが決まっていることから誤差が発生する 。 オーバーフロー これはイメージしやすい。 データサイズの上限を超えたときに発生する誤差。上位ビットからデータが溢れているので、オーバーフロー。 図 オーバーフロー アンダーフロー 浮動小数点型データで発生する。整数型では発生しない。 データサイズの下限より小さくなるときに発生する誤差。下位ビットからデータが溢れるので、アンダーフロー。 図 アンダーフロー 丸め誤差 まず、 「丸め」はデータを保存エリアのサイズに合わせるために、データの一部を捨てること 。 図 丸めとは 丸め操作をする際に発生する誤差が丸め誤差。 浮動小数点の仮数部のサイズに収まらない値(循環小数のように小数点以下の数字がいつまでも続くような値)は丸め誤差が発生する。 図 丸め操作により丸め誤差が発生する コンピュータでは2のxx乗で表せない小数は丸め誤差が発生する。 次回は テストはしません。 誤差の続きをやります。