FC2ブログ

マイナス0

あるとき、doubleの変数をprintfしたときに、

-0

というように出力され、最初は非常に小さいマイナスの数値がこういった感じで
出力されたのかと思っていましたが、実際は違いました。
この変数を16ダンプすると
0x8000000000000000
という値になります。
これをNanやInfの一種かとも思ったのですが、れっきとしたマイナス0という数値なんですね。
IEEE754では64bitの浮動小数点は、

  1. 1bitの符号

  2. 11bitの指数部

  3. 52bitの仮数部


からなるとしていて、
マイナス0の数の場合は、符号がマイナスで指数部と仮数部が共にゼロという感じですね。
ちなみに、プラスゼロはすべてのBitがゼロです。

あと、どのようにしてこのデータがつくられたんだろうと思っていたのですが、

double v = -1.0*0.0;

で簡単に作ることができました。

http://chattera.net/
スポンサーサイト

コメントの投稿

非公開コメント

プロフィール

chattera.net

Author:chattera.net
フリーでソフト開発の仕事をしています。
自作したこのチャットシステムは、何か世の中に役に立つこともあるかと思いますので、お呼びがかかるとうれしいですね。

連絡先は chatteranet@gmail.com です。

また、ソフト開発関連のお誘いもうけたまわっております。

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR