溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

float、double類型的數據在計算機內部的表示法

發布時間:2020-07-26 08:13:05 來源:網絡 閱讀:1408 作者:BarnabyRoss 欄目:編程語言

由于float和double類型的數據在內存中的保存形式是一樣的,只是double表示的范圍更大而已。因此,這里只介紹float的表示方法。double同理。
假設,我現在有一個數據-12.25。那么這個數據在計算機內部是如何存儲的呢?
首先,將這個浮點數轉換成二進制數。經過轉換,得到的二進制數為:1100.01。
接著,將這個二進制數用科學計數法來表示,1.10001 * 2 ^ 3。
由于這個數是負數。所以,符號位為1;指數位為127 + 3 = 130;尾數(小數)為10001。
然后,將指數130轉換為二進制數10000010。
最后,由于float占4個字節,也就是32位,所以,-12.25在內存中表示為:
11000001010001000000000000000000,將這個數用十六進制表示為0xC1440000。
那么,我們的計算結果對不對呢?我們可以用程序來驗證一下。

    float a = -12.25;
    unsigned int* p = ( unsigned int* )&a;

    printf ( "0x%08X\n", *p );

    system ( "pause" );
    return 0;

運行結果為:
float、double類型的數據在計算機內部的表示法
運行結果和我們計算的完全一樣。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女