IEEE 754 浮動小数点数の仕組み

このエントリーをはてなブックマークに追加
1番組の途中ですがアフィサイトへの転載は禁止です

この「演算誤差」対策講座も、いよいよ最終回です。そこで、演算誤差が発生する根本的な仕組みと、
エクセルVBAを利用した誤差対策法について学びます。

エクセルが誤差を起こすそもそもの原因は、「IEEE(アイ・トリプル・イー)754」という数値計算の
標準規格にあります。エクセルは、この規格に基づいて計算をしているのですが、この「IEEE 754」こそが、
演算誤差の原因なのです。この辺りの仕組みを詳しく解説しましょう。

一般のユーザーにはちょっと難しい話になってしまいますが、理解できなくてもご安心ください。第3回までに
学んだ演算誤差に対する知識と、対策法を押さえておけば、通常の問題はおおかた解決できます。今回は、演算
誤差の仕組みについてより詳しく勉強したい方、エクセルVBAなどで誤差対策をしたい方に、ぜひ読んでいただ
きたいと思います。

http://pc.nikkeibp.co.jp/pc21/special/gosa/eg4.shtml
2番組の途中ですがアフィサイトへの転載は禁止です:2013/10/29(火) 08:10:53.38 ID:HrvbD04F0
ええな
3番組の途中ですがアフィサイトへの転載は禁止です:2013/10/29(火) 08:17:03.07 ID:egtqt4Lt0
IEEE1394は良い規格だった
4番組の途中ですがアフィサイトへの転載は禁止です:2013/10/29(火) 08:35:16.28 ID:ukyKlcIi0
>>1
currency型かdecimal型使えばいいだけじゃないの?
5番組の途中ですがアフィサイトへの転載は禁止です:2013/10/29(火) 08:37:17.34 ID:SR4Sy3KOi
2進数化の誤差気にするならdecimalにすればええ
6番組の途中ですがアフィサイトへの転載は禁止です:2013/10/29(火) 08:38:36.29 ID:GOvz+Nog0
あいいーいーいー
あいとりぷるいー
7番組の途中ですがアフィサイトへの転載は禁止です:2013/10/29(火) 08:40:28.63 ID:+Ve8Bj0L0
誤差って主にフロートの話じゃないの
8番組の途中ですがアフィサイトへの転載は禁止です:2013/10/29(火) 08:47:04.86 ID:QnTohOUA0
今日の爆弾マーク(浮動小数点コプロセッサーエラー)スレか
9番組の途中ですがアフィサイトへの転載は禁止です:2013/10/29(火) 08:52:59.52 ID:pu05Qv5Z0
倍精度なら8087はSSEより高精度(キリッ
10番組の途中ですがアフィサイトへの転載は禁止です:2013/10/29(火) 08:54:06.62 ID:S8eqZNc70
うるう年の条件は「4の倍数はうるう年。100の倍数はうるう年でない。ただし400の倍数はうるう年」。
だから当然、2004年はうるう年、2000年もうるう年、2100年はうるう年でない。
では1900年はどうだろう。100の倍数だから・・・うるう年ではない。

でもExcelには、幻の1900年2月29日が存在する。
1900/02/28に+1すると、1900/02/29になる。
11番組の途中ですがアフィサイトへの転載は禁止です:2013/10/29(火) 08:54:42.77 ID:MzgUGMBh0
とりあえず普通に計算できるシステム作ってくれないかなあ
イチイチ面倒臭いよ
いつまでこの問題やってるの
12番組の途中ですがアフィサイトへの転載は禁止です:2013/10/29(火) 08:54:55.37 ID:godjfhAe0
浮動小数点演算使わないやつってMなの?
13番組の途中ですがアフィサイトへの転載は禁止です:2013/10/29(火) 08:55:11.51 ID:9jL4ItN50
>>4
計算に時間かかったり、singledoubleのほうが関数の制約にひっかからないし、とか
0.4-1=-0.6   -0.4-1=1.4

何故なのか
15番組の途中ですがアフィサイトへの転載は禁止です:2013/10/29(火) 08:58:47.28 ID:9jL4ItN50
>>10
こいつもスピード重視で横着した仕様にしてるんだっけな
符号、指数、仮数、正規化・・・俺は浮動小数点をあきらめた
17番組の途中ですがアフィサイトへの転載は禁止です:2013/10/29(火) 09:11:38.99 ID:h8qBSGDe0
フロートの誤差の扱いがCPUによって違うことによる影響を避けるために
H.264のデコードは整数で規定されるようになった
整数なら数値の丸め方に差は出ないから
18番組の途中ですがアフィサイトへの転載は禁止です:2013/10/29(火) 09:18:42.33 ID:AYm5DO6J0
シフト演算って知ってる?
二進数の各桁を左右に何個か動かす奴ね
左に1つ動かせば2倍、
右に1つ動かせば1/2倍になる

00101…5
01010…10
10100…20

2回2倍すれば2回左シフトする
二進数をN回2倍すると、N回左シフトする

(続く)
19番組の途中ですがアフィサイトへの転載は禁止です:2013/10/29(火) 09:18:57.71 ID:vu1BSMx70
> IEEE(アイ・トリプル・イー)

アイ・イー・イー・イーだろ
アイ・トリプル・イーなんて初めて見たぞ
20番組の途中ですがアフィサイトへの転載は禁止です:2013/10/29(火) 09:21:06.07 ID:qrrZFNil0
アイエェェェ
21番組の途中ですがアフィサイトへの転載は禁止です:2013/10/29(火) 09:22:53.65 ID:7PWgTuh5O
アイ・イー・イー・イーの方が聞いたことないわw
22番組の途中ですがアフィサイトへの転載は禁止です:2013/10/29(火) 09:24:01.47 ID:KWw4lFvX0
二進数をN回2倍する事は、
「二進数×2のN乗」
と表せる

これは、
「二進数をN回左シフト」
と言い替える事が出来る

浮動小数点演算表現は、
[符号部][指数部][仮数部]
の形式だけど、

仮数部がシフト演算の対象の二進数、
指数部がシフト演算の左右の向きと回数、
符号部がシフト演算後の二進数の符号、
の関係にある

指数部が-Nの時は、仮数部をN回右シフトする
>>18
20を左に論理シフトしたらオーバーフローしたぞ!
どうしてくれるんだ!
24番組の途中ですがアフィサイトへの転載は禁止です:2013/10/29(火) 09:30:02.23 ID:t30kSmMR0
>>18>>22は続き
25番組の途中ですがアフィサイトへの転載は禁止です:2013/10/29(火) 10:55:41.95 ID:+8iP8QX40
なんにつかうのこれ
26番組の途中ですがアフィサイトへの転載は禁止です:2013/10/29(火) 11:03:33.85 ID:vYcFhQqj0
>エクセルが誤差を起こす

おいちょっと待て。なんだこの表現は。
27番組の途中ですがアフィサイトへの転載は禁止です:2013/10/29(火) 11:34:01.12 ID:S8eqZNc7I
>>15
1900年の日付なんで使わないだろ、っとスピードを重視した
当時最大手だったLotus123との互換性を重視するあまりそうなった。

はじめてのBillGレビューのこと
http://local.joelonsoftware.com/mediawiki/index.php/%E3%81%AF%E3%81%98%E3%82%81%E3%81%A6%E3%81%AEBillG%E3%83%AC%E3%83%93%E3%83%A5%E3%83%BC%E3%81%AE%E3%81%93%E3%81%A8
>>19
お前だけだ
29番組の途中ですがアフィサイトへの転載は禁止です:2013/10/29(火) 12:45:13.04 ID:hiDrhRMmP
基本情報で勉強したけどもう忘れた
ちな落ちた
実装系のIEEE 754-2008への対応はどの程度進んだのだろう?
31番組の途中ですがアフィサイトへの転載は禁止です
基本情報試験の前の時期ならスレ建ての意味はわかるが。
もう秋季終わったやろ?