• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            天下

            記錄修行的印記

            C語言中float,double類型,在內存中的結構(存儲方式)

            C語言中float,double類型,在內存中的結構(存儲方式)
            從存儲結構和算法上來講,double和float是一樣的,不一樣的地方僅僅是float是32位的,double是64位的,所以double能存儲更高的精度。

            任何數據在內存中都是以二進制(0或1)順序存儲的,每一個1或0被稱為1位,而在x86CPU上一個字節是8位。比如一個16位(2 字節)的short int型變量的值是1000,那么它的二進制表達就是:00000011 11101000。由于Intel CPU的架構原因,它是按字節倒 序存儲的,那么就因該是這樣:11101000 00000011,這就是定點數1000在內存中的結構。

            目前C/C++編譯器標準都遵照IEEE制定的浮點數表示法來進行float,double運算。

            這種結構是一種科學計數法,用符號、指數和 尾數來表示,底數定為2——即把一個浮點數表示為尾數乘以2的指數次方再添上符號。

            下面是具體的規格:

            類型      符號位 階碼  尾數  長度
            float       1      8     23    32
            double    1     11    52    64
            臨時數     1     15    64    80

            由于通常C編譯器默認浮點數是double型的,下面以double為例: 共計64位,折合8字節。

            由最高到最低位分別是第63、62、61、……、0位: 最高位63位是符號位,1表示該數為負,0正; 62-52位,一共11位是指數位; 51-0位,一共52位是尾數位。

            按照IEEE浮點數表示法,下面將把double型浮點數38414.4轉換為十六進制代碼。

            把整數部和小數部分開處理:整數部直接化十六進制:960E。小數的處理: 0.4=0.5*0+0.25*1+0.125*1+0.0625*0+…… 實際上這永遠算不完!這就是著名的浮點數精度問題。所以直到加上前面的整數部分算夠53位就行了(隱藏位技術:最高位的1 不寫入內存)。

            如果你夠耐心,手工算到53位那么因該是:38414.4(10)=1001011000001110.0110101010101010101010101010101010101(2)

            科學記數法為:1.001……乘以2的15次方。指數為15! 于是來看階碼,一共11位,可以表示范圍是-1024 ~ 1023。因為指數可以為負,為了便于計算,規定都先加上1023,在這里, 15+1023=1038。

            二進制表示為:100 00001110 符號位:正—— 0 ! 合在一起(尾數二進制最高位的1不要): 01000000 11100010 11000001 11001101 01010101 01010101 01010101 01010101 按字節倒序存儲的十六進制數就是: 55 55 55 55 CD C1 E2 40。

             

            posted on 2011-12-03 11:45 天下 閱讀(7677) 評論(0)  編輯 收藏 引用 所屬分類: C/C++

            <2012年8月>
            2930311234
            567891011
            12131415161718
            19202122232425
            2627282930311
            2345678

            導航

            統計

            常用鏈接

            留言簿(4)

            隨筆分類(378)

            隨筆檔案(329)

            鏈接

            最新隨筆

            搜索

            最新評論

            久久一区二区三区99| 久久久91精品国产一区二区三区 | 久久综合五月丁香久久激情| 久久久无码精品亚洲日韩蜜臀浪潮| 亚洲精品国产第一综合99久久| 无码国内精品久久人妻麻豆按摩| 国产呻吟久久久久久久92| 国产精品成人精品久久久| 91精品国产91久久久久久| 国内精品久久久久影院网站| 国产福利电影一区二区三区久久久久成人精品综合 | 2021久久精品国产99国产精品| 午夜精品久久久久久中宇| 亚洲人成网亚洲欧洲无码久久| 日韩久久久久久中文人妻| 久久丫精品国产亚洲av不卡| 久久精品人人槡人妻人人玩AV| 久久精品国内一区二区三区 | 国内精品久久久久影院薰衣草| 污污内射久久一区二区欧美日韩 | 日韩人妻无码一区二区三区久久99| 热RE99久久精品国产66热| 热久久最新网站获取| 久久人妻少妇嫩草AV无码专区| 99国产欧美精品久久久蜜芽| 国产精品免费久久久久电影网| 久久久不卡国产精品一区二区| 亚洲国产成人久久一区久久| 狼狼综合久久久久综合网| 久久精品这里热有精品| 国产香蕉久久精品综合网| 久久ww精品w免费人成| 久久九色综合九色99伊人| 无码人妻久久久一区二区三区| 久久99精品国产一区二区三区| 欧美日韩成人精品久久久免费看| 蜜臀av性久久久久蜜臀aⅴ麻豆| 国产—久久香蕉国产线看观看| 久久精品国产2020| 久久久久久国产a免费观看不卡 | 久久精品国产精品亚洲艾草网美妙|