亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長(zhǎng)資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

    float 與 double 類型區(qū)別

    float 單精度浮點(diǎn)數(shù)在機(jī)內(nèi)占 4 個(gè)字節(jié),用 32 位二進(jìn)制描述。

    double 雙精度浮點(diǎn)數(shù)在機(jī)內(nèi)占 8 個(gè)字節(jié),用 64 位二進(jìn)制描述。

    float 與 double 類型區(qū)別

    浮點(diǎn)數(shù)在機(jī)內(nèi)用指數(shù)型式表示,分解為:數(shù)符,尾數(shù),指數(shù)符,指數(shù)四部分。

    數(shù)符占 1 位二進(jìn)制,表示數(shù)的正負(fù)。

    指數(shù)符占 1 位二進(jìn)制,表示指數(shù)的正負(fù)。

    尾數(shù)表示浮點(diǎn)數(shù)有效數(shù)字,0.xxxxxxx, 但不存開頭的 0 和點(diǎn)。

    指數(shù)存指數(shù)的有效數(shù)字。

    指數(shù)占多少位,尾數(shù)占多少位,由計(jì)算機(jī)系統(tǒng)決定。

    可能是數(shù)符加尾數(shù)占 24 位,指數(shù)符加指數(shù)占 8 位 — float

    數(shù)符加尾數(shù)占 48 位,指數(shù)符加指數(shù)占 16 位 — double。

    知道了這四部分的占位,按二進(jìn)制估計(jì)大小范圍,再換算為十進(jìn)制,就是你想知道的數(shù)值范圍。

    對(duì)編程人員來說,double 和 float 的區(qū)別是 double 精度高,有效數(shù)字 16 位,float 精度 7 位。但 double 消耗內(nèi)存是 float 的兩倍,double 的運(yùn)算速度比 float 慢得多,C 語(yǔ)言中數(shù)學(xué)函數(shù)名稱 double 和 float 不同,不要寫錯(cuò),能用單精度時(shí)不要用雙精度(以省內(nèi)存,加快運(yùn)算速度)。

    類型 比特?cái)?shù) 有效數(shù)字 數(shù)值范圍
    float 32 6-7 -3.4*10(-38)~3.4*10(38)
    double 64 15-16 -1.7*10(-308)~1.7*10(308)
    long double 128 18-19 -1.2*10(-4932)~1.2*10(4932)

    簡(jiǎn)單來說,F(xiàn)loat 為單精度,內(nèi)存中占 4 個(gè)字節(jié),有效數(shù)位是 7 位(因?yàn)橛姓?fù),所以不是8位),在我的電腦且 VC++6.0 平臺(tái)中默認(rèn)顯示是6位有效數(shù)字;double為 雙精度,占 8 個(gè)字節(jié),有效數(shù)位是 16 位,但在我的電腦且 VC++6.0 平臺(tái)中默認(rèn)顯示同樣是 6 位有效數(shù)字

    例子:在 C 和 C++ 中,如下賦值語(yǔ)句:

    float a=0.1; 

    編譯器報(bào)錯(cuò):warning C4305: ‘initializing’ : truncation from ‘const double ‘ to ‘float ‘

    原因: 在 C/C++ 中(也不知道是不是就在 VC++ 中這樣),上述語(yǔ)句等號(hào)右邊 0.1,我們以為它是個(gè) float,但是編譯器卻把它認(rèn)為是個(gè) double(因?yàn)樾?shù)默認(rèn)是 double),所以要報(bào)這個(gè) warning,一般改成 0.1f 就沒事了。

    本人通常的做法,經(jīng)常使用 double,而不喜歡使用 float。

    C 語(yǔ)言和 C# 語(yǔ)言中,對(duì)于浮點(diǎn)類型的數(shù)據(jù)采用單精度類型 float 和雙精度類型 double 來存儲(chǔ),float 數(shù)據(jù)占用 32bit, double 數(shù)據(jù)占用 64bit,我們?cè)诼暶饕粋€(gè)變量 float f= 2.25f 的時(shí)候,是如何分配內(nèi)存的呢?如果胡亂分配,那世界豈不是亂套了么,其實(shí)不論是 float 還是 double 在存儲(chǔ)方式上都是遵從 IEEE 的規(guī)范 的,float 遵從的是 IEEE R32.24 ,而 double 遵從的是 R64.53。

    無論是單精度還是雙精度在存儲(chǔ)中都分為三個(gè)部分:

    • 符號(hào)位(Sign):0 代表正,1 代表為負(fù)。
    • 指數(shù)位(Exponent):用于存儲(chǔ)科學(xué)計(jì)數(shù)法中的指數(shù)數(shù)據(jù),并且采用移位存儲(chǔ)。
    • 尾數(shù)部分(Mantissa):尾數(shù)部分。

    來源地址:https://my.oschina.net/zd370982/blog/724265

    贊(0)
    分享到: 更多 (0)
    網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)