国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

C語言菜鳥基礎教程之單精度浮點數與雙精度浮點數

2020-01-26 13:53:58
字體:
來源:轉載
供稿:網友

上節課 簡單介紹了浮點數。計算機程序中的浮點數分為單精度浮點數和雙精度浮點數。

單精度和雙精度精確的范圍不一樣。

計算機里的最基本的存儲單位用位(bit)來表示。bit只能用來存儲0或1。
稍大一點的單位是字節(Byte,簡寫為B)。
再大一級的是千字節(kilo Bytes),用k來表示。
再大一級的單位是兆字節(Mega Bytes),用M來表示。一張照片的大小通常為1~3M。
再大一級的單位為G。一部高清電影的大小通常為1~2G。
再大一級的單位為T。

換算關系為:

1B = 8bit
1k = 1024B = 2^10 B
1M = 1024k = 2^20 B
1G = 1024M = 2^30 B
1T = 1024G = 2^40 B

單精度(float)在計算機中存儲占用4字節,32位,有效位數為7位(6位小數+小數點)。
雙精度(double)在計算機中存儲占用8字節,64位,有效位數為16位(15位小數+小數點)。
不管是float還是double,在計算機中的存儲都遵循IEEE規范,使用二進制科學計數法,都包含三個部分:符號位、指數位和尾數部分。其中float的符號位、指數位(即整數部分)、尾數部分分別為1, 8, 23。雙精度則分別為1, 11, 52。

float

double

精度主要取決于尾數部分的位數,float為23位,最小為2的-23次方,約等于1.19乘以10的-7次方,所以float小數部分只能精確到后面6位,加上小數點算做一位,即有效數字為7位。
類似,double 尾數部分52位,最小為2的-52次方,約為2.22乘以10的-16次方,所以精確到小數點后15位,有效位數為16位。

程序驗證:

#include <stdio.h>int main(){  float a = 1.123456789;  printf("a = %20.9f/n", a);    double b = 2.123456789;  printf("b = %20.9f/n", b);    return 0;}

注意:這里%20.9f表示浮點數總共有20位,其中小數占9位。不足20位的部分,左側用空格來填充。

運行結果:

a =     1.123456836b =     2.123456789

從運行結果可以看出,單精度浮點數小數部分只有前6位是準確的,后三位是不準確的。雙精度小數部分9位都是準確的。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 新乡县| 麟游县| 会昌县| 潍坊市| 镇康县| 柳州市| 葵青区| 宁强县| 濉溪县| 普陀区| 石阡县| 邹城市| 桦甸市| 淳化县| 涞水县| 宁乡县| 安多县| 德化县| 都江堰市| 隆林| 青岛市| 荥阳市| 靖边县| 龙口市| 南充市| 阿坝县| 大同市| 霍州市| 突泉县| 芜湖市| 米脂县| 太仓市| 化德县| 唐河县| 肥西县| 武强县| 舒兰市| 威宁| 贵州省| 聂荣县| 茌平县|