外國排版網(wǎng)站,網(wǎng)絡(luò)營銷什么意思,直銷網(wǎng)站建設(shè) 優(yōu)幫云,電信寬帶做網(wǎng)站學(xué)習(xí)數(shù)據(jù)類型時(shí),整數(shù)類型中有一個特殊的類型char,可以使用字符來為其賦,也可以用整數(shù)來為其賦值,這是怎么一回事?其實(shí)任何類型,在計(jì)算機(jī)的內(nèi)存中,在最小的存儲單元比特中,內(nèi)部只有0或…- 學(xué)習(xí)數(shù)據(jù)類型時(shí),整數(shù)類型中有一個特殊的類型char,可以使用字符來為其賦,也可以用整數(shù)來為其賦值,這是怎么一回事?
- 其實(shí)任何類型,在計(jì)算機(jī)的內(nèi)存中,在最小的存儲單元比特中,內(nèi)部只有0或1
- 因此計(jì)算機(jī)能完成如此復(fù)雜的工作,就是其對這些0或1的解讀
- 同樣道理,char類型誕生于計(jì)算機(jī)早期內(nèi)存還很珍貴的時(shí)期,用最小存儲單元字節(jié),即8個比特來存儲數(shù)字,并作為最小類型,幾乎是天經(jīng)地義的
- 但是計(jì)算機(jī)不能把東西存入就可以的了,最重要的是對這些0或1的解讀
- 比如第一位是符號,也是在第2位到8位的0或1看作是小數(shù)的指數(shù)部分等
- 而char之所以誕生還有一個重要,讓這些0或1轉(zhuǎn)化成人類的可以讀的日常符號來打印到屏幕上
- char類型的本質(zhì)還是一個容量小一些的容器,無符號正整數(shù)范圍是0-255,而有符號范圍是-128至127
- char類型變量在賦值時(shí),可以使用整數(shù)或字符都可以
- 如要是以字符來為其賦值,本質(zhì)上是先到ASCII表把將這個字符的二進(jìn)制取出存入變量中,也就是在存儲過程中,只有0或1寫入內(nèi)存中,根本就沒有任何字符
char c = 'a'
char c = 97;
- 當(dāng)打印字符變量這個過程又逆轉(zhuǎn),發(fā)現(xiàn)內(nèi)存中的存儲是char類型,就到ASCII中把字符取出再打印,而不像其它類型直接打印而已
- 如果
std::cout << c + 0 << std::endl
為什么可以打印整數(shù)97,這是因?yàn)槠渲械?是int類型,兩種不同類型,會將小類型調(diào)整為至少int類型,而int類型打印就不再需要這種查找ASCII表,找對應(yīng)字符過程的