【基本情報技術者試験】演算誤差(オーバーフローとアンダフロー)

基本情報技術者試験

本記事では基本情報技術者にも出題されるオーバーフローとアンダフローについて解説しています。 目次は以下の通りです。

演算誤差

演算誤差は、計算過程で発生する誤差のことで、数値計算において正確な結果を得るために考慮する必要がある要因です。
演算誤差の種類は以下のようなものがあります。
・桁落ち
・情報落ち
・丸め誤差
・打切り誤差
・オーバーフロー
・アンダフロー

本記事ではオーバーフローとアンダフローについて説明しています。

オーバーフロー

オーバーフローは、データ型の範囲を越えて数値が増加し、正確な表現ができない状態を指し、主に最大値を超えることによる誤差が生じます。
たとえば、整数型の変数がその型が表現できる最大値(絶対値)を越えて増加する場合、オーバーフローが発生します。この結果、予期しない挙動やエラーが生じる可能性があります。オーバーフローには適切なデータ型の選択や範囲チェックなどの対策が求められます。

下の図でいうところの紫の領域がオーバーフローに該当します。

アンダフロー

アンダフローは計算機やプログラムで扱う数値がそのデータ型で表現可能な範囲を下回り、正確に表現できなくなる状態を指します。
主に最小値(絶対値)を下回った場合に生じ、計算結果がゼロや極めて小さな数となり、情報の損失が発生します。

下の図でいうところの黄色の領域がアンダフローに該当します。

まとめ

本記事のポイントを以下にまとめます。

・演算誤差は、計算過程で発生する誤差
・オーバーフローは、数値がデータ型の最大値(絶対値)を上回り、正確に扱えなくなる誤差
・アンダフローは、数値がデータ型の最小値(絶対値)を下回り、正確に扱えなくなる誤差

コメント

タイトルとURLをコピーしました