溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

C++數(shù)據(jù)類型的取值范圍

發(fā)布時(shí)間:2021-07-20 04:35:08 來(lái)源:億速云 閱讀:398 作者:chen 欄目:編程語(yǔ)言

這篇文章主要介紹“C++數(shù)據(jù)類型的取值范圍”,在日常操作中,相信很多人在C++數(shù)據(jù)類型的取值范圍問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”C++數(shù)據(jù)類型的取值范圍”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

C++數(shù)據(jù)類型是用來(lái)存儲(chǔ)值的所在處;它們有名字和數(shù)據(jù)類型,變量的數(shù)據(jù)類型決定了如何將代表這些值的位存儲(chǔ)到計(jì)算機(jī)的內(nèi)存中,變量名允許的***長(zhǎng)度隨編譯器的不同而不同。

而在C++數(shù)據(jù)類型,則必須先聲明變量類型再使用變量:int x1 = 1;int x = 1000;float y = 3.14;long z = 457000;這樣,編譯器就可以進(jìn)行類型檢查,確保程序運(yùn)行時(shí)一切順利。數(shù)據(jù)類型使用不當(dāng)會(huì)導(dǎo)致編譯錯(cuò)誤或警告,以便分析和糾正之后再運(yùn)行。

有些數(shù)據(jù)類型有帶符號(hào)和無(wú)符號(hào)兩種。帶符號(hào)(signed)數(shù)據(jù)類型可以包含正數(shù)和負(fù)數(shù),而無(wú)符號(hào)(unsigned)數(shù)據(jù)類型只能包含正數(shù)。表1.1列出了C++中的數(shù)據(jù)類型、所要內(nèi)存量和可能的取值范圍。

數(shù)據(jù)類型 字節(jié) 數(shù)取值范圍:

char 1 -128到126    unsigned char 1 0到255    short 2 -32,768到32,767    unsigned short 2 0到65,535    long 4 -2,147,483,648到2,147,483,648    unsigned long 4 0到4,294,967,295    int 4 同long    unsigned int 4 同unsigned long    float 4 1.2E-38到3.4E381    double 8 2.2E-308到1.8E3082    bool 1 true或false

從上表可以看出,int與long相同。那么,為什么C++還要區(qū)分這兩種數(shù)據(jù)類型呢?實(shí)際上這是個(gè)遺留問(wèn)題。在16位編程環(huán)境中,int要求2個(gè)字節(jié)而long要求4個(gè)字節(jié)。而在32位編程環(huán)境中,這兩種數(shù)據(jù)都用4個(gè)字節(jié)存放。

C++數(shù)據(jù)類型只生成32位程序,所以int與long相同。說(shuō)明 在C++ Builder和BorLand C++ 5.0中,Bool是個(gè)真正的數(shù)據(jù)類型。有些C++編譯器有Bool關(guān)鍵字,則Bool不是個(gè)真正的數(shù)據(jù)類型。

有時(shí)Bool只是個(gè)typedef,使Bool等價(jià)于int。typedef實(shí)際上建立別名,使編譯器在一個(gè)符號(hào)與另一符號(hào)間劃上等號(hào)。typedef的語(yǔ)法如下:typedef int Bool;這就告訴編譯器:Bool是int的別名。說(shuō)明 只有double和float數(shù)據(jù)類型使用浮點(diǎn)數(shù)(帶小數(shù)點(diǎn)的數(shù))。

其它數(shù)據(jù)類型只涉及整數(shù)值。盡管integer數(shù)據(jù)類型也可以指定帶小數(shù)點(diǎn)的數(shù)值,但小數(shù)部分會(huì)舍棄,只將整數(shù)部分賦予整型變量,例如:int x=3.75;得到的x取值為3。注意,這個(gè)整數(shù)值并不是四舍五入,而是放棄小數(shù)部分。

順便說(shuō)一句,大多數(shù)Windows程序很少用到浮點(diǎn)數(shù)。C++數(shù)據(jù)類型可以在必要時(shí)進(jìn)行不同數(shù)據(jù)類型間的換算。例如:short result;long num1 = 200;long num2 = 200;result = num1 * num2;這里我想將兩個(gè)長(zhǎng)整型的積賦予一個(gè)短整型。盡管這個(gè)公式混用了兩種數(shù)據(jù)類型,但C++能夠進(jìn)行換算。

計(jì)算結(jié)果會(huì)怎樣呢?結(jié)果會(huì)讓你大吃一驚,是25536,這是繞接(wrop)的結(jié)果。從表1.1可以看出,短整型的***取值為32767,在***值之上加1會(huì)怎么樣呢?得到的是32768。這實(shí)際上與汽車?yán)锍逃?jì)從99999回到00000的道理一樣。為了說(shuō)明這點(diǎn),請(qǐng)輸入并運(yùn)行下列清單1.3中包含的程序。

到此,關(guān)于“C++數(shù)據(jù)類型的取值范圍”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

c++
AI