「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

負のオーバーフロー

pointこの用語のポイント

pointオーバーフローだよ

point許容されている値よりも小さい数字(マイナス方向に大きい数字)を入れようとすると起きるよ

スポンサーリンク

簡単に書くよ

負のオーバーフロー(読:フノオーバーフロー 英:negative overflow)とは

オーバーフロー(限界よりも大きい数字を入れて、あふれちゃった状態)の分類(?)のひとつ
であり

「9,999,999,999」のような大き過ぎる値を入れてあふれちゃった状態を普通のオーバーフロー(正のオーバーフロー)と見なしたとして、それとは逆で「-9,999,999,999」のような小さ過ぎる(マイナス方向に大き過ぎる)値を入れてあふれちゃった状態のこと
です。


image piyo

詳しく書くよ

順番に見ていきましょう。
まずは予備知識として「オーバーフロー」について説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。

オーバーフローは「想定している量よりも多くて、あふれちゃった状態」です。
主にプログラミングの分野で登場します。

負のオーバーフロー

例えば、そうですね。
ここに数字が入る箱が ありました。

負のオーバーフロー2

この箱は2桁の数字が入る箱です。
0~99の数字が入ります。

負のオーバーフロー3

ところがどっこい、です。
間抜けなピヨ太君が「10×10」の計算結果をこの箱に入れようとしました。

負のオーバーフロー4

「10×10」の計算結果は「100」です。
「100」は3桁です。
2桁の数字が入る箱には入りきりません。
案の定、箱に穴が開いてあふれてしまいました。

負のオーバーフロー5

このような状態がオーバーフローです。
桁あふれ」と表現されることも あります。

数値型の変数(プログラミング世界における数字を入れておく箱)には最大値があります。
「これより大きい数字は入れられないよ」な限界があるのです。
プログラミング言語の種類によって限界の値は変わりますけどね。
いずれにせよ、何らかの限界はあります。

オーバーフローは、その限界よりも大きな値を箱に入れようとしたときに起こる現象です。

以上を踏まえて

限界よりも小さな値(マイナス方向に大きい値)を入れようとして、あふれちゃった状態

が「負のオーバーフロー」です。

負のオーバーフロー6

例えば、そうですね。
ここに数字が入る箱が ありました。

負のオーバーフロー7

この箱はプラスかマイナスの2桁の数字が入る箱です。
具体的には-99~99の数字が入ります。

負のオーバーフロー8

ところがどっこい、です。
間抜けなピヨ太君が「10×10」の計算結果をこの箱に入れようとしました。

負のオーバーフロー9

「10×10」の計算結果は「100」です。
「100」は3桁です。
2桁の数字が入る箱には入りきりません。
案の定、箱に穴が開いてあふれてしまいました。

負のオーバーフロー10

これは上でも説明した普通のオーバーフロー正のオーバーフローです。

負のオーバーフロー11

次にピヨ太君は「-10×10」の計算結果をこの箱に入れようとしました。

負のオーバーフロー12

「-10×10」の計算結果は「-100」です。
入れようとした箱は「-99」までしか入りません。
案の定、箱に穴が開いてあふれてしまいました。

負のオーバーフロー13

これが負のオーバーフローです。

負のオーバーフロー14

負のオーバーフローもオーバーフローです。
入れられる限界を超えた値を入れようとしてあふれたことには変わりありません。

ただし「オーバーフロー」という語感からは「大き過ぎる値を入れてあふれた」イメージを受けます。

……という理由かどうかは知りませんが、小さ過ぎる値(マイナス方向に大き過ぎる値)を入れてあふれちゃった状態を「負のオーバーフロー」と表現して、大き過ぎる値を入れてあふれちゃった状態(正のオーバーフロー)と区別することがあるのです。

負のオーバーフロー15

オーバーフローはオーバーフローなのですけどね。
「オーバーフロー」と言われてイメージするのとは逆方向にあふれちゃった状態です。


image piyo2

一言でまとめるよ

まぁ「負のオーバーフロー」って単語が出てきたら「限界よりも小さい数字(マイナス方向に大きい数字)を入れて、あふれちゃった状態なんだな~」と お考えください。

一番上に戻るよ
スポンサーリンク
書籍画像077
書籍画像001

おまけ

■訳してみるよ

「負の」は日本語ですね。
「overflow(オーバーフロー)」の意味は「あふれる」とか「氾濫する」とかです。
何となく くっつけると

負の(方向に)あふれる

となります。




書籍画像
わわわ説明術コラム
宣伝だよ
わかばちゃんとつくって、壊して、直して学ぶ NewSQL入門
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本
ソフトウェア受託現場の「失敗」集めてみた。 42の失敗事例で学ぶ受託開発のうまい進めかた