- - PR -
計算結果があわないです。
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-02-08 12:39
2進数講座になるのかな?
浮動小数での小数点以下は次のようになります。 ※コンピュータ内部の数字は2の階乗 2のマイナス1乗 0.5 2のマイナス2乗 0.25 2のマイナス3乗 0.125 2のマイナス4乗 0.0625 ・ ・ ・ 以下続く この数値の組み合わせで階乗の組み合わせにマッチしないものは 近似値しか出せないわけです。 | ||||||||
|
投稿日時: 2007-02-08 12:41
いやいや…スレ主に対してです ![]() #先日呑み会で話題になった事なんですが、 #今時の人は手で2進数を数えるとかやらないのだろうか… #というか電気工学科卒でSEやってる人間からすると #そう言った事を教えないのは至極不思議なんですけど。 | ||||||||
|
投稿日時: 2007-02-08 12:53
>杏仁豆腐(旧MechanicalLifeさん
私もCOBOLのことはようしらんのですが、 COBOLは、内部では最初から、2進化10進表現で、数値を扱っているみたいですね。 これなら丸め誤差は生じませんね。 >NAOさん 私も、「『丸め誤差』が生じる」ってのは習ったり読んだりしたけど、 その仕組みまでは、そのような覚えがないような。(-.-; 基数変換とかシフト演算とか知ってたら、自分で導き出せるでしょうけど。 #今時の人は手で2進数を数えるとかやらないのだろうか… 筆算で、下向きにわり算をやっていくって方法がありましたね。 商に対して、余りを1個多くしちゃう人がいるんですよ。w <追記> なんか脱線している? すみません。 [ メッセージ編集済み 編集者: Edosson 編集日時 2007-02-08 12:54 ] | ||||||||
|
投稿日時: 2007-02-08 13:50
COBOLはパック10進法なのかな。
一応、情報処理試験でこういうところは出題範囲なのですが、 配点比率が低いから知らなくても受かりますし、 所詮はマークシートでの問題なのでさらっとしか触れない感じ。 (私が持っているのは旧1種ですが…) 自分のときは高校の数学でわずかながら2進数があったように記憶しています。 電子工学科いってたのでAND、OR、NOTゲートでビット演算する方法ぐらいは 学びましたが、他学科の人だとそういう物理的なコンピュータの仕組みは 学ぶ機会もないのかもしれませんね。 Javaの場合、ビット演算は可能ですが、使用する機会が少ないように思います。 特定フォーマットに従ったファイルIOを手書きするなどのケース以外では稀では? Cとかアセンブラやってたときはよく使ったものですが。 フラグをORしてパラメータに渡すような仕様のメソッドとか Javaだとまず見かけないですよね…。 だんだん2進数から遠ざかっているのかな、と思います。 | ||||||||
|
投稿日時: 2007-02-08 14:23
きわめてどうでもいい話ですが、java.math.BigDecimalは浮動小数点です。 ええもちろんニュアンスは分かっておりますが。 | ||||||||
|
投稿日時: 2007-02-08 14:26
2進数?
小学校でも中学校でも高校でも習いましたが・・・ うちらの下からカリキュラムが変わったんだよなぁ〜。 センター試験で苦労したorz (はい、ごめんなさい、脱線です。) | ||||||||
|
投稿日時: 2007-02-08 18:18
多数のお返事ありがとうございました。
私の勉強不足を痛感いたしました。 2進数については勉強はしていたのですが 浮動小数点については無知の状態でした。 ....double(浮動小数点)について 勉強してみます。m(__)m ありがとうございました。 | ||||||||
|
投稿日時: 2007-02-08 18:42
解決したようですが、
IEEE 754, 854あたりを読んでみると良いですよ。 CQ出版のインターフェース誌(80年代中ごろだったか)に IEEE 754の詳しい解説記事が特集されています。(もう売ってないと思うので、会社の図書室とか探してみてはどうでしょう) |