更新時(shí)間:2020-09-17 16:08:46 來源:動(dòng)力節(jié)點(diǎn) 瀏覽2550次
整數(shù)數(shù)據(jù)類型的取值范圍
我們都知道計(jì)算機(jī)的底層是二進(jìn)制,也知道不同的整數(shù)類型存儲(chǔ)值的范圍不同,可這些數(shù)值在計(jì)算機(jī)底層是怎樣存儲(chǔ)的呢?數(shù)值范圍又是怎么計(jì)算出來的呢?
下面以java來進(jìn)行舉例:
byte 1個(gè)字節(jié) (8bit) -2^7~2^7-1
short 2個(gè)字節(jié) (16bit) -2^16~2^16-1
int 4個(gè)字節(jié) (32bit) -2^31~2^31-1
long 8個(gè)字節(jié) (64bit) -2^63~2^63-1
整數(shù)數(shù)據(jù)類型其中最高位是符號(hào)位,用來表示正數(shù)或負(fù)數(shù)。其中0用來表示正數(shù),1用來表示負(fù)數(shù)。
那么,剩下的位就是數(shù)值位,用來表示數(shù)值大小的。
那么byte的可用范圍就是7位了:
從000 0000~111 1111轉(zhuǎn)換成十進(jìn)制也就是從0~127
如果加上符號(hào)位呢?
1111 1111~0111 1111轉(zhuǎn)換成十進(jìn)制是從-127~127
可是如果我們的111 1111還能再進(jìn)一位呢?
那不就是變成1000 0000了嗎,那這個(gè)數(shù)到底是用來表示-128還是128呢?
因?yàn)榉?hào)位的存在,如果讓它來表示128的話,就亂套了,所以我們就規(guī)定只用它來表示正的128。
所以一個(gè)字節(jié)能表示的最大范圍是從-2^7~2^7-1 ps:2^7是128
無符號(hào)類型的取值范圍(char)
Java中的char類型是用兩個(gè)字節(jié)來表示,使用的是Unicode編碼,所以可以正常表示中文字符。
兩個(gè)字節(jié)一共十六位,又因?yàn)闆]有符號(hào)位,都是數(shù)值位的原因,所以表值范圍是從:
0000 0000 0000 0000~1111 1111 1111 1111 1111 1111(65535)
所以char類型的表值范圍是從0~2^16-1
Java整數(shù)類型:http://www.dabaquan.cn/tutorial_java_se/74.html
以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“Java中整數(shù)型的取值范圍”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743