java中int是什么意思

這篇文章將為大家詳細講解有關(guān)java中int是什么意思,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

創(chuàng)新互聯(lián)服務緊隨時代發(fā)展步伐,進行技術(shù)革新和技術(shù)進步,經(jīng)過十多年的發(fā)展和積累,已經(jīng)匯集了一批資深網(wǎng)站策劃師、設(shè)計師、專業(yè)的網(wǎng)站實施團隊以及高素質(zhì)售后服務人員,并且完全形成了一套成熟的業(yè)務流程,能夠完全依照客戶要求對網(wǎng)站進行成都網(wǎng)站建設(shè)、網(wǎng)站制作、建設(shè)、維護、更新和改版,實現(xiàn)客戶網(wǎng)站對外宣傳展示的首要目的,并為客戶企業(yè)品牌互聯(lián)網(wǎng)化提供全面的解決方案。

在Java中,int是使用32位表示,long使用64位表示。這兩個基本類型都是整形,沒有其他的表示方法了。他們內(nèi)部是怎么表示的呢?是采用補碼表示。由于我們經(jīng)常在做題中會遇到Java的位運算,Java的位運算只能用于int和long型。所以我們有理由好好分析Java內(nèi)部是怎么用二進制表示的。這里只舉int為例子,long是一樣的。

1、int的范圍

int在Java內(nèi)部是用32位來表示的,而最高位是表示符號,因此真正可以表示數(shù)字的是31位。Java的int類型取值范圍是-2^31~2^31-1.

為什么范圍是這樣?這就涉及到二進制的存儲方法了。

在Java中,是使用補碼來存儲int。對于一個正數(shù),其補碼,就是本身。例如,我們舉4個位來做例子。對于正數(shù)1-7,分別是0001,0010,。。。,0111,一共是7個數(shù)字,也就是2^3-1個。

對于0,可以看到問題來了??梢允?0,也可以是+0,都是0。決定要怎么表示0呢?補碼的法則規(guī)定,0認為是+0,因此0用0000表示。

這個時候,需要表示負數(shù)了。我們認為,一個負數(shù),它的補碼表示是其絕對值取反(連同符號位一起取反)再加1。例如,對于-5,它的絕對值是5,表示為0101,取反,為1010,加一為1011,這就是-5的補碼表示。

這個時候,可以用1000來表示-8,于是負數(shù)的范圍是-2^31,這也就解釋了int的取值范圍。對于64位的long也是完全一樣的。

2、Java的位運算

Java的位運算是怎么做的呢?要記住,移位運算是整個數(shù)整體向左或者右移動。如果是向左移,則是低位補0。如果是向右移,分兩種情況。如果是0和正數(shù),則高位補0。如果是負數(shù),則高位補1。如對于-5為1011,右移一位為1101,也就是-3。

還有一種位運算。如果是按位運算,記得符號位也是要參與進來的!

3、右移與除法的關(guān)系

對于正數(shù)(當然0也是)來說,右移一位等于除以2的結(jié)果,但是對于負數(shù)來說不是(確切地說是除以2的結(jié)果-1)!例如,-5/2結(jié)果是-2,-5>>1結(jié)果是-3。

4、正負號與整數(shù)除法、取余運算的關(guān)系

正數(shù)/正數(shù),向下取整

負數(shù)/負數(shù),等于他們的絕對值相除

正數(shù)/負數(shù)和負數(shù)/正數(shù),就是他們絕對值相除乘上負號。

至于%的結(jié)果,結(jié)果的絕對值與他們絕對值的取余一樣,但是符號由第一個數(shù)決定。

5、為什么要用補碼?

(1)前面已經(jīng)說過,為了合理地表示+0和-0;

(2)可以在負數(shù)處多表示一個最負的數(shù);

(3)使用補碼,可以將符號位和其它位統(tǒng)一處理;同時,減法也可按加法來處理。另外,兩個用補碼表示的數(shù)相加時,如果最高位(符號位)有進位,則進位被舍棄。

其實很大一個原因是為了計算加減法方便。在使用補碼系統(tǒng)進行運算的時候,是可以把符號位加起來一起運算的。在位運算中,如果符號位有進位,是可以舍棄的,因為已經(jīng)超出了比特范圍了。對于正數(shù)和正數(shù)相加,沒什么特別的。下面例子都是8個比特的。例如,對于7+7,也就是00000111+00000111,結(jié)果是00001110,為14。

而對于減法,例如9-4,我們就認為是9+(-4),先對4,也就是00000100取反再加一,得到-4的補碼表示11111100,然后相加,也就是

+00001001(9)

+11111100(-4)

? 100000101

最后一位符號位的進位1,因為已經(jīng)超出了比特范圍,所以直接舍棄,可以直接就得到5了。所以這也就是實現(xiàn)了減法變加法。

關(guān)于java中int是什么意思就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

網(wǎng)站題目:java中int是什么意思
瀏覽地址:http://bm7419.com/article38/geiosp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導航、定制開發(fā)、手機網(wǎng)站建設(shè)、定制網(wǎng)站Google、網(wǎng)頁設(shè)計公司

廣告

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

小程序開發(fā)