對於double和long long那個範圍大

2021-06-18 16:31:35 字數 600 閱讀 1637

先看double

double是計算機使用的一種資料型別。比起單精度浮點數(float),double(雙精度浮點數)使用 64 位(8位元組) 來儲存乙個浮點數。 它可以表示十進位制的15或16位有效數字,負值取值範圍為 -1.7976e+308 到 -4.94065645841246544e-324,正值取值範圍為 4.94065645841246544e-324 到 1.797693e+308。

double在計算機中的儲存方法:無論是單精度還是雙精度在儲存中都分為三個部分:

符號位(sign) : 0代表正,1代表為負

指數字(exponent):用於儲存科學計數法中的指數資料,並且採用移位儲存

尾數部分(mantissa):尾數部分

正是它不同於long long的儲存方法,使得它雖然只有64位但是可以比同樣是64位的long long 型別取值範圍大很多。

對於long long

64位的範圍應該是[-2^63 ,2^63],既-9223372036854775808~9223372036854775807。

它的儲存方法就是按位儲存。有符號位就有一位符號位,沒有符號位就64位全部來儲存這個數。

decimal,float和double的區別

一直很奇怪c 的預定義資料型別中為什麼加了乙個decimal,有float和double不就夠了嗎?今天來挖一挖。浮點型name cts type de script ion significant figures float system.single 32 bit single precisio...

double和float的區別

float a 0.1 編譯器報錯 warning c4305 initializing truncation from const double to float 原因 在c c 中 也不知道是不是就在vc 中這樣 上述語句等號右邊0.1,我們以為它是個float,但是編譯器卻把它認為是個doub...

float和double儲存方式

在c c 中float是32位的,double是64位的,兩者在記憶體中的儲存方式和能夠表示的精度均不同,目前c c 編譯器標準都遵照ieee制定的浮點數表示法來進行float,double運算。無論是float還是double,在記憶體中的儲存主要分成三部分,分別是 1 符號位 sign 0代表正...