- blogs:
- cles::blog
« 800 万円かけても身長を伸ばしたい? :: シェーバーの刃を交換した »
2020/10/06

double 型の変数には -0.0 が代入できる

久しぶりに c でプログラムを書いていたら double 型の変数に -0.0 が代入できることに気づいたのでメモ。
通常はあまり使わない変な値を入れて実行してみるとこんな感じになります。
example.c
#include <stdio.h>
#include <math.h>
int main(void){
double d;
d = -0.0;
printf("%f\n", d);
d = INFINITY;
printf("%f\n", d);
d = -INFINITY;
printf("%f\n", d);
d = NAN;
printf("%f\n", d);
return 0;
}
実行結果
-0.000000
inf
-inf
nan
† 詳細は IEEE 754 で
ほとんどのプログラミング言語の実数の扱いは IEEE 754(最新版は IEEE 754-2019 - IEEE Standard for Floating-Point Arithmetic)に基づいています。
このため、内部的には符号部、指数部、仮数部の組み合わせで1つの値が表現されます。
したがって、よく考えたら -0.0 というのは普通に存在できるんですね。
これに対して int や long などの整数型の負値は2の補数表現なので、-0 は存在しません。
トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/12019
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
« 800 万円かけても身長を伸ばしたい? :: シェーバーの刃を交換した »
サイト内検索
検索ワードランキング
へぇが多いエントリ
閲覧数が多いエントリ
1 . Solr-rubyで複数のドキュメントを一括Post(32987)
2 . Windows 10 で勝手にログアウトされないようにする(31861)
3 . Word で数式がグレーアウトされていて挿入できないときは(26740)
4 . リモートデスクトップで Alt + PrtSc と同じことをするには(22182)
5 . Visual Studio 2017/2019 で scanf() がエラー(C4996)になるときは(21464)
2 . Windows 10 で勝手にログアウトされないようにする(31861)
3 . Word で数式がグレーアウトされていて挿入できないときは(26740)
4 . リモートデスクトップで Alt + PrtSc と同じことをするには(22182)
5 . Visual Studio 2017/2019 で scanf() がエラー(C4996)になるときは(21464)
cles::blogについて
Referrers