[ 通常表示 ]  [ 簡易表示 ]  [ シンプル表示 ]

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

オーバーフロー (overflow)

pointこの用語のポイント

point入れ過ぎちゃったよ

point溢れちゃったよ

スポンサーリンク

簡単に書くよ

オーバーフロー (overflow)とは

「いやんっ、溢れちゃった(*ノノ)」な状態のこと。
もう少し真面目ぶって書くと

「これより大きい数字は入れられないよ」な限界よりも大きい数字を入れようとしておかしな状態になっちゃうこと。
あるいは

「これくらい入れるかな~」と思って確保していた領域よりもたくさん入れちゃって、入りきらなかった状態のこと
です。

image piyo

詳しく書くよ

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

オーバーフロー

例えば、ここに数字を入れる箱を用意したとしましょう。

オーバーフロー2

この箱は2桁の数字が入る箱、具体的には0~99までの数字が入る箱です。

オーバーフロー3

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

オーバーフロー4

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

オーバーフロー5

このような状態が「オーバーフロー」です。
別名「桁あふれ」とも言われます。

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

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

これが、本来の意味のオーバーフローです。

実はプログラミングの世界には「バッファオーバーフロー」という用語もあります。
このバッファオーバーフローの省略表現として「オーバーフロー」という場合もあるので、ご注意ください。

バッファは「データを一時的に溜めておく場所」程度の意味です。
バッファオーバーフローは、このバッファ(データを溜めておく場所)がオーバーフローした(溢れた)状態を指す用語です。

せっかくなので、バッファオーバーフローについて、もう少し説明しておきましょう。

プログラミングでは、変数を扱います。
変数は「データを入れておく箱」です。
中に値を入れます。

オーバーフロー6

この変数ですが、実際にはメモリ上に場所を確保します。
メモリの上に「ここからここまで、この変数が使うから」と値を入れておくための領域を確保するのです。

オーバーフロー7

よく分からない方は、花見の場所取りをイメージしてください。
場所を取るために下に敷いたブルーシートが変数です。
その上に座る上司や先輩、花見の参加者が値です。

花見の参加者が多くなると、ブルーシートに座りきれません。
ブルーシートの外にはみ出してしまうでしょう。
そうすると、隣で花見をしている人たちの迷惑になってしまうかもしれませんね。

コンピュータの世界も同じです。

例えば、3文字まで入る変数をメモリ上に確保したとしましょう。

オーバーフロー8

そこに4文字以上入れると、入りきらない分が溢れてしまいます。

オーバーフロー9

もし隣の領域を他の変数として使っていたらどうでしょう?

オーバーフロー10

他の変数の値を書き換えてしまうかもしれませんね。

オーバーフロー11

これは本来想定していない事態です。
困ったことになる可能性が高いです。

このように、本来確保していた領域よりも大きい値を入れて溢れちゃった状態を「バッファオーバーフロー」と言います。
そして、その省略表現として「オーバーフロー」と言う場合もあります。

とはいえ、似たようなものですけどね。
文字も数値もコンピュータさんにとっては0、1の組み合わせです。
大した違いはないでしょう。

いずれにせよ「オーバーフロー」と出てきたら「許容されている量よりもたくさん入れちゃって溢れた状態」と読み替えれば、意味は通じると思います。

image piyo2

一言でまとめるよ

まぁ「オーバーフロー」って単語が出てきたら「溢れちゃったんだな~」と、お考えください。

一番上に戻るよ
スポンサーリンク