負のオーバーフロー
オーバーフローだよ
許容されている値よりも小さい数字(マイナス方向に大きい数字)を入れようとすると起きるよ
簡単に書くよ
負のオーバーフロー(読:フノオーバーフロー 英:negative overflow)とは
オーバーフロー
(限界よりも大きい数字を入れて、あふれちゃった状態)の分類(?)のひとつ
であり
「9,999,999,999」のような大き過ぎる値を入れてあふれちゃった状態を普通のオーバーフロー(正のオーバーフロー)と見なしたとして、それとは逆で「-9,999,999,999」のような小さ過ぎる(マイナス方向に大き過ぎる)値を入れてあふれちゃった状態のこと
です。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として「オーバーフロー」について説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
オーバーフローは「想定している量よりも多くて、あふれちゃった状態」です。
主にプログラミングの分野で登場します。
例えば、そうですね。
ここに数字が入る箱が ありました。
この箱は2桁の数字が入る箱です。
0~99の数字が入ります。
ところがどっこい、です。
間抜けなピヨ太君が「10×10」の計算結果をこの箱に入れようとしました。
「10×10」の計算結果は「100」です。
「100」は3桁です。
2桁の数字が入る箱には入りきりません。
案の定、箱に穴が開いてあふれてしまいました。
このような状態がオーバーフローです。
「桁あふれ」と表現されることも あります。
数値型の変数(プログラミング世界における数字を入れておく箱)には最大値があります。
「これより大きい数字は入れられないよ」な限界があるのです。
プログラミング言語や型の種類によって限界の値は変わりますけどね。
いずれにせよ、何らかの限界はあります。
オーバーフローは、その限界よりも大きな値を箱に入れようとしたときに起こる現象です。
以上を踏まえて
限界よりも小さな値(マイナス方向に大きい値)を入れようとして、あふれちゃった状態
が「負のオーバーフロー」です。
例えば、そうですね。
ここに数字が入る箱が ありました。
この箱はプラスかマイナスの2桁の数字が入る箱です。
具体的には-99~99の数字が入ります。
ところがどっこい、です。
間抜けなピヨ太君が「10×10」の計算結果をこの箱に入れようとしました。
「10×10」の計算結果は「100」です。
「100」は3桁です。
2桁の数字が入る箱には入りきりません。
案の定、箱に穴が開いてあふれてしまいました。
これは上でも説明した普通のオーバーフロー(正のオーバーフロー)です。
次にピヨ太君は「-10×10」の計算結果をこの箱に入れようとしました。
「-10×10」の計算結果は「-100」です。
入れようとした箱は「-99」までしか入りません。
案の定、箱に穴が開いてあふれてしまいました。
これが負のオーバーフローです。
負のオーバーフローもオーバーフローです。
入れられる限界を超えた値を入れようとしてあふれたことには変わりありません。
ただし「オーバーフロー」という語感からは「大き過ぎる値を入れてあふれた」イメージを受けます。
……という理由かどうかは知りませんが、小さ過ぎる値(マイナス方向に大き過ぎる値)を入れてあふれちゃった状態を「負のオーバーフロー」と表現して、大き過ぎる値を入れてあふれちゃった状態(正のオーバーフロー)と区別することがあるのです。
オーバーフローはオーバーフローなのですけどね。
「オーバーフロー」と言われてイメージするのとは逆方向にあふれちゃった状態です。
一言でまとめるよ
まぁ「負のオーバーフロー」って単語が出てきたら「限界よりも小さい数字(マイナス方向に大きい数字)を入れて、あふれちゃった状態なんだな~」と お考えください。
おまけ
■訳してみるよ
「負の」は日本語ですね。
「overflow(オーバーフロー)」の意味は「あふれる」とか「氾濫する」とかです。
何となく くっつけると
負の(方向に)あふれる
となります。






