C語言?格式字符、整型、字符型、浮點(diǎn)型詳解-創(chuàng)新互聯(lián)

1、格式字符? ????????格式字符是由“%”和字符組成,其作用是將輸出的數(shù)據(jù)轉(zhuǎn)化為指定的格式輸出。 ????????格式字符表如下:
%d/%i有符號的十進(jìn)制整數(shù),i 是老式寫法
%u無符號十進(jìn)制整數(shù)
%c字符
%s字符串
%f單精度浮點(diǎn)數(shù)
%lf雙精度浮點(diǎn)數(shù)(lf 在 C99 開始加入標(biāo)準(zhǔn),意思和 f 相同)
%p以 16 進(jìn)制形式輸出指針
%o無符號 8 進(jìn)制整數(shù)
%n到此字符之前為止,一共輸出的字符個(gè)數(shù),不輸出文本
%%不進(jìn)行轉(zhuǎn)換,輸出字符“ % ”(百分號)本身
%x無符號 16 進(jìn)制整數(shù)
%e(%E)浮點(diǎn)數(shù)指數(shù)輸出[ e-(E-)]記數(shù)法]

創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括樊城網(wǎng)站建設(shè)、樊城網(wǎng)站制作、樊城網(wǎng)頁制作以及樊城網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,樊城網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到樊城省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!2、整型

整型數(shù)據(jù),英文單詞是Integer,比如-2、-1、0、1、2、1234、等等都是整形數(shù)據(jù)。整型數(shù)據(jù)是不允許出現(xiàn)小數(shù)點(diǎn)和其他特殊符號的數(shù)據(jù)。

整型數(shù)據(jù)共分為7類,如下圖:

? 其中短整型、整型、和長整型為有符號數(shù)據(jù)類型。

2.1 取值范圍

? 在我們使用不同的數(shù)據(jù)類型時(shí),需要注意的是不要讓數(shù)據(jù)超出范圍,否則就會造成常說的數(shù)據(jù)溢出。

類型說明字節(jié)范圍
整型int4-2147483648~2147483647
短整型short (int)2-32768~32767
長整型long(int)4-2147483648-2147483647
無符號整型unsign(int)40-4294967295
無符號短整型unsigned short (int)20-65535
無符號長整型unsigned long (int)40-4294967295
字符型char10-255
2.2 有符號和無符號

int類型在內(nèi)存中占用了4個(gè)字節(jié),也就是 32位。因?yàn)?int 類型是有符號的,所以這32 位并不是全部用來存儲數(shù)據(jù)的,使用其中的 1 位來存儲符號,使用其他的 31 位來存儲數(shù)值。為了簡單起見,下面用一個(gè)字節(jié) 8 位來說明。

對于有符號整數(shù),以最高位(左邊第 1位)作為符號位,最高位是 0,表示的數(shù)據(jù)是正數(shù),最高位是 1,表示的數(shù)據(jù)是負(fù)數(shù)。

整型 10 二進(jìn)制形式:

00001010

整型-10二進(jìn)制形式:

10001010

對于無符號整數(shù),因?yàn)楸硎龅亩际欠秦?fù)數(shù),因此一個(gè)字節(jié)中的8位全部用來存儲數(shù)據(jù),不再設(shè)置符號位。

整型 10 二進(jìn)制形式:

00001010

整數(shù)138二進(jìn)制形式:

10001010
2.3 類型間轉(zhuǎn)換

不同類型的整型數(shù)據(jù)所占的字節(jié)數(shù)不同,在相互轉(zhuǎn)換時(shí)就需要格外留心,不要將過大的數(shù)據(jù)放在過小的數(shù)據(jù)類型中。在把所占字節(jié)較大的數(shù)據(jù)賦值給占字節(jié)較小的數(shù)據(jù)時(shí),應(yīng)防止出現(xiàn)以下的情況。

#includeint main()
{
    int a=2147483648;
    printf("%d",a);
    return 0;
}

這樣賦值后,輸出變量a的值并非預(yù)期的2147483648,而是-2147483648,原因是2147483648超出了int 類型能夠裝載的大值,數(shù)據(jù)產(chǎn)生了溢出。但是換一種輸出格式控制符,如下:

#includeint main()
{
    int a=2147483648;
    printf("%u",a);
    return 0;
}

輸出的結(jié)果就是變量 a 的值,原因是%u 是按照無符號整型輸出的數(shù)據(jù),而無符號整型的數(shù)據(jù)范圍上限大于2147483648 這個(gè)值。

例如:

#includeint main()
{
    unsigned short a = 256;
    char b = a;
    printf("%d",b);
    return 0;
}

這樣賦值后,輸出變量b的值并非預(yù)期的 256,而是0,原因是256 超出了 char 類型能夠裝載的大值,b只截取了a的低8位的數(shù)據(jù),如下:

當(dāng)把所占字節(jié)較小的數(shù)據(jù)賦值給占字節(jié)較大的數(shù)據(jù)時(shí),可能出現(xiàn)以下兩種情況。第1種情況,當(dāng)字節(jié)較大數(shù)是無符號數(shù)時(shí),轉(zhuǎn)換時(shí)新擴(kuò)充的位被填充成0。

例如:

#includeint main()
{
    char b = 10;
    unsigned short a = b;
    printf("%u",a);
    return 0;
}

這樣賦值后,變量a中輸出的值是 10,原因如下:

第 2種情況,當(dāng)字節(jié)較大數(shù)是有符號數(shù)時(shí),轉(zhuǎn)換時(shí)新擴(kuò)充的位被填充成符號位。

例如:

#includeint main()
{
    char b = 255;
    short a = b;
    printf("%d",a);
    return 0;
}

這樣賦值后,變量a輸出的值是-1,變量a擴(kuò)充的高8 位,根據(jù)變量b的最高位1 都被填充成了1,所以數(shù)值由正數(shù)變成了負(fù)數(shù),因?yàn)樽兞縜 的最高位符號位是1。至于為什么16個(gè)1表示的是-1,涉及到二進(jìn)制數(shù)的原碼和補(bǔ)碼問題,這里我們先不深究。轉(zhuǎn)換圖示如下:

3、字符型

字符型是整型數(shù)據(jù)中的一種,它存儲的是單個(gè)的字符,存儲方式是按照 ASCII碼(American
Standard Code for Information Interchange,美國信息交換標(biāo)準(zhǔn)碼)的編碼方式,每個(gè)字符占一個(gè)字節(jié)、8位(bit)(關(guān)于ASCII碼,可查閱C語言書籍ASCll表的相關(guān)內(nèi)容)。

字符使用單引號“ '?”引起來,與變量和其他數(shù)據(jù)類型相區(qū)別,比如'A','5','m','&'等。

又比如有這樣4個(gè)字符:'H','e','l','o',它們在內(nèi)存中存儲的形式如下所示。

01001000011001010110110001101111
Helo
#includeint main()
{
    char c = 'A';
    printf("%c,%u",c,c);
    return 0;
}

輸出結(jié)果是:A,65。

此處的65是字符'A'的ASCII碼。

因?yàn)樽址且訟CSII碼形式存儲的,所以字符 A 和整數(shù)65是可以相互轉(zhuǎn)換的。

在字符的家族中,控制符是無法通過正常的字符形式表示的,比如常用的回車、換行、退格等,而需要使用特殊的字符形式來表示,這種特殊字符稱為轉(zhuǎn)義符。

轉(zhuǎn)義符說明ASCll
換行,移動到下一行首00001010
\t水平制表鍵,移動到下一個(gè)制表符位置00001001
\b退格,向前退一格00001000
\r回車,移動到當(dāng)前行行首00001101
\a報(bào)警00000111
\?輸出問號00111111
\’輸出單引號00100111
\”輸出雙引號00100010
\ooo八進(jìn)制方式輸出字符,o表示八進(jìn)制數(shù)
\xhhh十六進(jìn)制方式輸出字符,h表示十六進(jìn)制數(shù)
\0空字符000000
4、浮點(diǎn)型

C語言中除了整型外的另外一種數(shù)據(jù)類型就是浮點(diǎn)型,浮點(diǎn)型可以表示有小數(shù)部分的數(shù)據(jù)。浮點(diǎn)型包含 3 種數(shù)據(jù)類型,分別是單精度的 floa t類型、雙精度的 double 類型和長雙精度 long double 類型。

浮點(diǎn)型數(shù)據(jù)的所占字節(jié)、位數(shù)、有效數(shù)字和取值范圍如表所示:

類型字節(jié)位數(shù)有效數(shù)字取值范圍
float4326~7-1.4e-45~3.4e38
double86415~16-4.9e-324~1.8e308
long?double812818~19————

?浮點(diǎn)型數(shù)據(jù)精度高占據(jù)的存儲空間大。

????浮點(diǎn)型數(shù)據(jù)在計(jì)算機(jī)內(nèi)存中的存儲方式與整型數(shù)據(jù)不同,浮點(diǎn)型數(shù)據(jù)是按照指數(shù)形式存儲的。系統(tǒng)把一個(gè)浮點(diǎn)型數(shù)據(jù)分成小數(shù)部分和指數(shù)部分,分別存放。指數(shù)部分采用規(guī)范化的指數(shù)形式。根據(jù)浮點(diǎn)型的表現(xiàn)形式不同,我們還可以把浮點(diǎn)型分為小數(shù)形式和指數(shù)形式兩種。

指數(shù)形式如下所示('e'或者'E'都可以):


2.0e3??????????????????????表示2000.0
1.23e-2????????????????????表示0.0123
123e2??????????????????????表示12.3
1.e-3????????????????????????表示0.001


對于指數(shù)形式,有以下兩點(diǎn)要求:
(1)字母e前面必須要有數(shù)字;
(2) 字母 e的后面必須是整數(shù)。

注 意:浮點(diǎn)數(shù)是有有效位數(shù)要求的,所以要比較兩個(gè)浮點(diǎn)數(shù)是否相等,比較這兩個(gè)浮點(diǎn)數(shù)的差值是不是在給定的范圍內(nèi)即可。

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

當(dāng)前文章:C語言?格式字符、整型、字符型、浮點(diǎn)型詳解-創(chuàng)新互聯(lián)
路徑分享:http://www.bm7419.com/article36/ceedpg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣軟件開發(fā)、移動網(wǎng)站建設(shè)、外貿(mào)建站App開發(fā)、網(wǎng)頁設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)