オーバーフロー

について語るスレ

記事をみる

21

<<

>>

1/1

  • 1ななしのよっしん

    2011/09/25(日) 06:32:06 ID: ZlYtWsINfG

    悪いな、童貞なんだ。

  • 2ななしのよっしん

    2012/04/26(木) 01:39:00 ID: zr3Bpu6tnL

    エレナアアアアアアアアア!!!!!

  • 3ななしのよっしん

    2012/11/11(日) 21:48:05 ID: Yve7sLqs8N

    なんだかんだでいまだに代表的なバグとして君臨してる存在

  • 4ななしのよっしん

    2012/11/27(火) 14:42:01 ID: ohDlX1S5up

    838861
    8逃げ

  • 5ななしのよっしん

    2013/03/19(火) 15:18:46 ID: 7ev0gcUVIC

    数値が0未満になっていきなり大きい数字になることもオーバーフローなんだっけ

  • 6ななしのよっしん

    2013/09/07(土) 23:44:31 ID: eDONa0sjqv

    >>5
    その例だとオーバーフローにはならない。
    たとえば8bitの場合、-128~+127を表現しようとしているときに +127を上回ったり -128を下回ったときにオーバーフローが起こる。
    0~+255 を表現しているときに範囲をえるのはオーバーフローにはならない。(厳密にはCPUや処理系依存する)

    ちなみにオーバーフローしたときに、数値が一回転してプラスからマイナス(あるいは逆)に変化してしまうような現は、ラップアラウンドという。
    これは >>5 の例のような、オーバーフローが起こらない例でもそう呼ぶ。


  • 7ななしのよっしん

    2014/04/19(土) 03:31:12 ID: 43JUyAI94G

    >>6wikipedia読んでなんとなくわかったぞ
    符号なしの桁上りの場合、キャリーってとこに格納されてまともに計算される(これが多分>>6の言うCPUや処理系
    けど符号付きは辺の桁をえず、且つ辺の桁に上がる場合に反対の符号しかないから反転する

    >>6で言うと1足して「+128」にしたいのに、128って数字がマイナスにしかない
    だから「-128」にしちゃうんだけど、符号なしとした場合正常と判断されるからおかしくなる、と


    これあってんのか?

  • 8ななしのよっしん

    2015/09/21(月) 15:20:52 ID: e+/yzymz1t

    >>5ケースは数値が0未満、つまり細かすぎる値になって大きな値に変化するのだから、
    アンダーフローだと思われる
    なおオーバーフローアンダーフローコンピュータが仕組み上限を扱えない以上、くなる事は

  • 9ななしのよっしん

    2016/03/21(月) 12:33:55 ID: axA9XApyGa

    +1する場合を考えてみる

    符号付き
    ・(0) 0111 1111 → (0) 1000 0000 : 127 → -128 だから異常
    ・(0) 1111 1111 → (1) 0000 0000 : -1 → 0 だから正常

    符号
    ・(0) 0111 1111 → (0) 1000 0000 : 127128 だから正常
    ・(0) 1111 1111 → (1) 0000 0000 : 255 → 0 だから異常

    矢印が逆の場合(-1)も同様
    符号付きでは、8bitに収まっていてもループしてしまう反面、9bitを使うのは問題ない

  • 10ななしのよっしん

    2016/04/29(金) 15:31:34 ID: B2jvKzXH5K

    この記事的に言えば、1がである以上、想定外の個所に負数ができてひっくり返る現オーバーフローとは言わないだろうな
    アンダーフローはそもそも言葉として意味が通らないし、どこぞが定義した正式な用ってわけでもないから適当でいいんじゃね

  • 11ななしのよっしん

    2016/05/17(火) 23:54:28 ID: bT/IclfNal

    アンダーフローは定義されている術だよ
    浮動小数点数において、演算結果の絶対値が小さくなりすぎて0で表現されることをいう

    整数演算において、結果の表現範囲をえてしまうこと(によって表現可な別の値になってしまうこと)が算術オーバーフロー
    故に符号整数で、演算結果が負になってラップアラウンドするのもオーバーフロー

  • 12ななしのよっしん

    2016/05/28(土) 12:01:41 ID: VK5eSeum0L

    まあ少なくとも仕事ではアンダーフローなんて言葉使わないなあ。
    昔にべれば、特にオブジェクト指向系の言でのオーバーフローによるバグはかなり少なくなってると思う。
    ビジュアル化の流れが強くなっている今日では、座標系の変数で発生しやすいかもしれない。
    デバイスから取得したアナログ値を扱うときはみんなオーバーフローに注意するが、
    プログラム内だけで完結する物理演算変数でのオーバーフロー想定ができていないケースは多いと思う

  • 13nの3乗

    2016/09/13(火) 18:36:44 ID: Hyu+PAfEkl

    2038年問題を解決する大きなカギとなりそうですね・・・

  • 14ななしのよっしん

    2016/10/26(水) 22:25:26 ID: n8egFf9XdR

    たっぷりと浴槽にためたお湯に使ったときに起こること

    オーバー風呂ー……

  • 15ななしのよっしん

    2016/11/17(木) 21:46:15 ID: 3UYkhAAvsF

    >>sm24090545exit_nicovideo

  • 16ななしのよっしん

    2017/01/28(土) 10:47:55 ID: d30fbrclfi

    >>14 オーフーローバー浸しになるな

  • 17ななしのよっしん

    2018/07/17(火) 01:41:02 ID: lThB0KxHve

    残機が128になる
    →残機の変数は符号つき8bitなので「-128」と読まれる
    ミスすると「こいつ残機0以下だな」と処理されて即ゲームオーバー

  • 18ななしのよっしん

    2019/01/24(木) 20:22:12 ID: ApBalUYVLw

    アンダーフローオーバーフロー以上に簡単に起こるからこれを機に覚えて帰ってね

    RPG、たとえばドラクエで攻撃×1.5のダメージを与える技があったとします。
    攻撃10はダメージ15です
    攻撃5のときダメージは7.5ですが、ドラクエHP表示は小数点を使わないので7になります
    端数の0.5はどこに行ったのでしょうか?
    0.5を記録しておく領域が用意されていないので0.5は消えて0になりました。これがアンダーフローです。

    攻撃の1.5倍のダメージを与える上記の技と弱点属性ならダメージ2倍、が併用されるとき
    攻撃5のときダメージが5×1.5×2=7.5×2=15になるとき、アンダーフローは起きていません
    ダメージが【5×1.5】×2→【7】×2→14になるとき、アンダーフローが起きています。0.5が復号されず消えたままになってるんですね

    なおコンピュータ2進数なので、十進数の0.1を内部で表すとき2進数表記0.00011001100… と限に続いてしまうので実は必ずアンダーフローが起こっています。

  • 19ななしのよっしん

    2019/03/09(土) 10:55:39 ID: B2jvKzXH5K

    その現をどこのバカが何の冗談でアンダーフローと称したのかは知らないが、何の期間が定義した訳でもなく正式な定義はない
    オーバーフローと違い、そもそも頭痛が痛いバカ英語なので感から定義も出来ない
    なので正解は

  • 20ななしのよっしん

    2019/03/29(金) 08:31:25 ID: 5VDcTQA0x/

    >>11とか>>18の言ってる「浮動小数点数が有限桁だから計算時にどうしても発生してしまう誤差情報落ち」って普通桁落ちとか丸め誤差とか打ち切り誤差とか言うんじゃないかなあ
    変換に伴う情報落ちはアンダーフローと言わないだろうし
    そういう誤差が発生する現あるいは原理のことをアンダーフローっていってるんかな

  • 21ななしのよっしん

    2019/06/13(木) 14:27:18 ID: EHgnrI3eio

    コンピュータの中では引き算は「補数の足し算」だから桁あふれの上下を区別する必要がないんだよね。(結局上位1ビット分あふれる)

<<

>>

1/1


TOP
       

ほめた!

すでにほめています。

ほめるを取消す

 

 

OK

ほめるを取消しました。

OK

ほめるに失敗しました。

OK

ほめるの取消しに失敗しました。

OK

ほめるにはログインが必要です。

キャンセル

ログイン