當前位置:首頁 » 編程語言 » c語言位寬和精度
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言位寬和精度

發布時間: 2022-05-24 11:30:26

c語言 精度問題

void print_double(double n)
{
static char buf[32];
snprintf(buf, sizeof(buf), "%lf", n);
char *p = buf + strlen(buf);
while (*p == '0') *p-- = 0;
printf("%s", buf);
}

❷ 什麼是C語言中的精度,與位數有什麼差別


別把計算機中的位和數學中位的概念混淆了
6位和16位精度指的是數學中小數點後6位和小數點後16位
符號位指的是計算機中的位,即變數的第一個位(BIT)代表正數還是負數

❸ c語言中寬度精度問題

你的代碼有錯誤
int是整形定義,a和b不能是小數
%d也是用於顯示整型數的

你的應該為:
float a=20.526,b=20.533;
printf("%6.2f%.2f\n",a,b);
%.2是保留2位小數的意思

下面附:
printf的格式控制的完整格式:
% - 0 m.n l或h 格式字元
下面對組成格式說明的各項加以說明:
①%:表示格式說明的起始符號,不可缺少。
②-:有-表示左對齊輸出,如省略表示右對齊輸出。
③0:有0表示指定空位填0,如省略表示指定空位不填。
④m.n:m指域寬,即對應的輸出項在輸出設備上所佔的字元數。N指精度。用於說明輸出的實型數的小數位數。為指定n時,隱含的精度為n=6位。
⑤l或h:l對整型指long型,對實型指double型。h用於將整型的格式字元修正為short型。

---------------------------------------
格式字元
格式字元用以指定輸出項的數據類型和輸出格式。
①d格式:用來輸出十進制整數。有以下幾種用法:
%d:按整型數據的實際長度輸出。
%md:m為指定的輸出欄位的寬度。如果數據的位數小於m,則左端補以空格,若大於m,則按實際位數輸出。
%ld:輸出長整型數據。
②o格式:以無符號八進制形式輸出整數。對長整型可以用"%lo"格式輸出。同樣也可以指定欄位寬度用「%mo」格式輸出。
例:
main()
{ int a = -1;
printf("%d, %o", a, a);
}
運行結果:-1,177777
程序解析:-1在內存單元中(以補碼形式存放)為(1111111111111111)2,轉換為八進制數為(177777)8。
③x格式:以無符號十六進制形式輸出整數。對長整型可以用"%lx"格式輸出。同樣也可以指定欄位寬度用"%mx"格式輸出。
④u格式:以無符號十進制形式輸出整數。對長整型可以用"%lu"格式輸出。同樣也可以指定欄位寬度用「%mu」格式輸出。
⑤c格式:輸出一個字元。
⑥s格式:用來輸出一個串。有幾中用法
%s:例如:printf("%s", "CHINA")輸出"CHINA"字元串(不包括雙引號)。
%ms:輸出的字元串佔m列,如字元串本身長度大於m,則突破獲m的限制,將字元串全部輸出。若串長小於m,則左補空格。
%-ms:如果串長小於m,則在m列范圍內,字元串向左靠,右補空格。
%m.ns:輸出佔m列,但只取字元串中左端n個字元。這n個字元輸出在m列的右側,左補空格。
%-m.ns:其中m、n含義同上,n個字元輸出在m列范圍的左側,右補空格。如果n>m,則自動取n值,即保證n個字元正常輸出。
⑦f格式:用來輸出實數(包括單、雙精度),以小數形式輸出。有以下幾種用法:
%f:不指定寬度,整數部分全部輸出並輸出6位小數。
%m.nf:輸出共佔m列,其中有n位小數,如數值寬度小於m左端補空格。
%-m.nf:輸出共佔n列,其中有n位小數,如數值寬度小於m右端補空格。
⑧e格式:以指數形式輸出實數。可用以下形式:
%e:數字部分(又稱尾數)輸出6位小數,指數部分佔5位或4位。
%m.ne和%-m.ne:m、n和」-」字元含義與前相同。此處n指數據的數字部分的小數位數,m表示整個輸出數據所佔的寬度。
⑨g格式:自動選f格式或e格式中較短的一種輸出,且不輸出無意義的零。

❹ 請問一下,C語言中,位寬是位元組數嗎有這樣一個問題:請列舉你所知道的C語言變數類型,並指明它們的位寬

位寬 是2進制形式的數 占的位數,英文 bit (字元)個數。
位元組 是 byte, 1 byte = 8 bit(s).
C語言中 double 8 位元組,位寬 64 bits
float, long int 4 位元組,位寬 32 bits
short int 2 位元組,位寬 16 bits
char 1 位元組,位寬 8 bits
---
左移,右移 運算 的 移多少位,就是按 bit 位算的。
----
列印輸出佔位寬度,是另一個概念,它以字元為單位,輸出 場地寬度。

❺ 關於C語言的位寬

解釋如下:
1
如果不用.n顯式指定小數位數,則默認是保留6位小數。
這里就沒有顯式指定,所以保留6位小數。
2
%10f中的10表示輸出的最小寬度是10,同時,因為是正數,所以是右對齊(當然負數就是左對齊了),當實際寬度不足10位時,會在左邊補充空格以填充到10位,當寬度超出10位時,不受此指定的影響。
同時,對於這里的寬度,小數點也算一位。

所以,輸出就是那樣了。

❻ c語言域寬與精度

首先知道%e是按科學記數法輸出值(%E同%e),1.23e+001的意思是1.23*10^1,+表示正號,對比一下這幾個輸出:

#include<stdio.h>
voidmain()
{
floatx=12.34;
printf("1.x=%e ",x); //1.直接按科學計數法表示:1.234*10^1
printf("2.x=%10.2f ",x);//2.按單精度浮點型輸出,按10位的寬度輸出,小數點後保留2位,多出的位數前邊默認補空格
printf("3.x=%010.2f ",x);//3.按單精度浮點型輸出,按10位的寬度輸出,小數點後保留2位,多出的位數前邊補0
printf("4.x=%10.2e數一下,包括空格在內一共10位,小數點後保留2位 ",x);//4.按科學計數法輸出,按10位的寬度輸出,小數點後保留2位,多出的位數前邊默認補空格
printf("5.x=%2f ",x); //5.按單精度浮點型輸出,按2位的寬度輸出,若x的長度不足2,則左補空格,大於2保持正常輸出,這里顯然x的寬度大於2了,故直接按單精度浮點型輸出
printf("6.x=%2E ",x); //6.同5,只是按科學計數法輸出
}

運行結果比對一下:

❼ C語言中的 單精度型 和雙精度型是什麼意思

1、單精度和雙精度都指浮點數,就是帶小數點的數
2、單精度數的有效位數比較少,7位左右,雙精度的在幾十位。
3、單精度定義是用float
4、雙精度定義是用double
比如:
#include <math.h>
main(){
float pi_f = M_PI;
double pi_d = M_PI;
printf("%E,",pi_f);
printf("%E",pi_d);
}

❽ C語言中數據的精度是什麼意思

c語言中:

float浮點數7位有效數字。
double雙精度數16位有效數字。

單精度數的尾數用23位存儲,加上默認的小數
點前的1位1,2^(23+1) = 16777216。因為 10^7 < 16777216 <
10^8,所以說單精度浮點數的有效位數是7位。 雙精度的尾數用52位存儲,2^(52+1) = 9007199254740992,10^16
< 9007199254740992 < 10^17,所以雙精度的有效位數是16位

單精度浮點數的實際有效精度為24
位二進制,這相當於 24*log102≈7.2
位10進制的精度,所以平時我們說「單精度浮點數具有7位精度」。(精度的理解:當從1.000...02變化為1.000...12時,變動范圍為
2-23,考慮到因為四捨五入而得到的1倍精度提高,所以單精度浮點數可以反映2-24的數值變化,即24位二進制精度)

浮點數7位有效數字。(應該是單精度數)
雙精度數16位有效數字。
浮點數取值范圍:
負數取值范圍為 -3.4028235E+38 到 -1.401298E-45,正數取值范圍為 1.401298E-45 到 3.4028235E+38。
雙精度數取值范圍:
負值取值范圍-1.79769313486231570E+308 到 -4.94065645841246544E-324,正值取值范圍為 4.94065645841246544E-324 到 1.79769313486231570E+308。

所以精度是測量值與真值的接近程度。包含精密度和准確度兩個方面精度的等級是以它的允許誤差占表盤刻度值的百分數來劃分的,其精度等級數越大允許誤差占表盤刻度極限值越大。量程越大,同樣精度等級的,它測得壓力值的絕對值允許誤差越大。
精度
經常使用的的精度為 2.5 、1.5 級,如果是1.0和0.5級的屬於高精度,現在有的數字已經達到0.25級。

❾ C語言域寬和精度問題

printf("%12.5d",XX)
域寬就是12,就是說他會輸入一個佔用12位的標准形式(默認靠右對其)
它的精度是精確到小數點後五位
格式碼:
g/G,輸出說明是『f和e中的較短者,不印無效0

p,輸出說明是『輸出地址,格式由具體實現定義

關於格式碼:
http://read.pudn.com/downloads151/ebook/654014/%E6%B4%AA%E7%BB%B4%E6%81%A9%20C%E8%AF%AD%E8%A8%80%E6%95%99%E5%AD%A6%E6%89%8B%E5%86%8C/ch4.pdf

❿ C語言中printf的精度和寬度有什麼區別

可以在"%"和字母之間的數字表示最大場寬。
例如:
%3d
表示輸出3位整型數,
不夠3位右對齊。
%9.2f
表示輸出場寬為9的浮點數,
其中小數位為2,
整數位為6,
小數點佔一位,
不夠9位右對齊。
%8s
表示輸出8個字元的字元串,
不夠8個字元右對齊。
如果字元串的長度、或整型數位數超過說明的場寬,
將按其實際長度輸出。
但對浮點數,
若整數部分位數超過了說明的整數位寬度,
將按實際整數位輸出;
若小數部分位數超過了說明的小數位寬度,
則按說明的寬度以四捨五入輸出。
對於整數和字元串來說,不存在精度問題。
對於浮點來說,所謂的精度是指小數位寬度。