Java-基本數(shù)據(jù)類(lèi)型的取值范圍及成因

記得某次面試中,面試官讓我寫(xiě)個(gè)代碼段:

? ??????將兩個(gè)長(zhǎng)度為n的字符串相加,其中字符串為純數(shù)字,求結(jié)果?

哦呵,面試官的意圖非常明顯,無(wú)非是想考察下面試者對(duì)于數(shù)據(jù)類(lèi)型取值范圍的掌握、數(shù)據(jù)溢出的處理。

em...是的...但是...,我忘了 =.=I|..,int的取值范圍?這個(gè)取值范圍是怎么來(lái)的?數(shù)據(jù)溢出會(huì)變成什么樣?......,再見(jiàn)了,青春。


一、基本數(shù)據(jù)類(lèi)型

? ? ? ?數(shù)據(jù)類(lèi)型在計(jì)算機(jī)語(yǔ)言里面,是對(duì)內(nèi)存位置的一個(gè)抽象表達(dá)方式,是語(yǔ)言的抽象原子概念,可以說(shuō)是語(yǔ)言中最基本的單元定義。java是強(qiáng)類(lèi)型語(yǔ)言,本質(zhì)上可將數(shù)據(jù)類(lèi)型分為兩種:基本類(lèi)型和引用數(shù)據(jù)類(lèi)型。

  基本類(lèi)型:簡(jiǎn)單數(shù)據(jù)類(lèi)型是不能簡(jiǎn)化的、內(nèi)置的數(shù)據(jù)類(lèi)型、由編程語(yǔ)言本身定義,它表示了真實(shí)的數(shù)字、字符和整數(shù)。

數(shù)據(jù)類(lèi)型圖
基本數(shù)據(jù)類(lèi)型屬性表

二、取值范圍的由來(lái)

以short短整型為例,short類(lèi)型占2個(gè)字節(jié),即16位。

1、16位二進(jìn)制可表示的范圍為:

????????????????0000,0000,0000,0000 ~ 1111,1111,1111,1111(0 ~ 2^16-1)

2、java中整數(shù)類(lèi)型的數(shù)據(jù)在保存為二進(jìn)制時(shí),都定義了符號(hào)位,最高位(第一位)表示符號(hào):0表示正,1表示負(fù)。即16位二進(jìn)制數(shù)可表示的范圍為:

? ? ? ? ? ? ? ? ?0111,1111,1111,1111 ~ 1111,1111,1111,1111(2^15-1 ~ -2^15-1)

3、


問(wèn):在不同位數(shù)的操作系統(tǒng)上,基本數(shù)據(jù)類(lèi)型所表示的范圍是否相同?

答:在C/C++上是不同的,但是在java上是相同的。(具體不深究)

三、數(shù)據(jù)溢出

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容