在java中的整數類型有四種,分別是 byte short int long 其中byte只有一個字節 0或1,在此不詳細講解。
其他的三種類型如下:
1、
基本類型:short 二進制位數:16
包裝類:java.lang.Short
最小值:Short.MIN_VALUE=-32768 (-2的15此方)
最大值:Short.MAX_VALUE=32767 (2的15次方-1)
2、
基本類型:int 二進制位數:32
包裝類:java.lang.Integer
最小值:Integer.MIN_VALUE= -2147483648 (-2的31次方)
最大值:Integer.MAX_VALUE= 2147483647 (2的31次方-1)
3、
基本類型:long 二進制位數:64
包裝類:java.lang.Long
最小值:Long.MIN_VALUE=-9223372036854775808 (-2的63次方)
最大值:Long.MAX_VALUE=9223372036854775807 (2的63次方-1)
拿short類型舉例:
首先需要明白在計算機中最高位為符號位,0表示正數,1表示負數。在計算機中數據是使用其補碼表示的,但正數補碼是其本身,負數的補碼是負數的源碼取反加一得到的補碼。
一、正數的原碼、反碼、補碼都相等
例:0000 1010(在十進制中表示+10,左數第一位為符號位)
它的原碼、反碼、補碼都是0000 1010
二、負數的原碼是其本身,負數的反碼是將符號不變,把符號后邊的數取反,對於負數的補碼 是把原碼取反后加1
例:1000 1010(在十進制中表示-10)
它的原碼是 1000 1010
它的反碼是 1111 0101
它的補碼是 1111 0110
例如short類型: -1 二進制標示: 10000000 00000001(最大的負整數-1 )
取反: 11111111 11111110
加1 補碼: 11111111 11111111 (最大的負整數-1在計算機中的標示方法)
明白了 以上這些再說short的二進制標示:
先看這個: 最小的負整數 -32768 計算機中二進制標示:10000000 00000000
最大的負整數-1 計算機中二進制標示:11111111 11111111
0 計算機中二進制標示:00000000 0000000
最小的正整數 1 計算機中二進制標示: 00000000 00000001
最大的正整數:32767 計算機中二進制標示: 01111111 11111111
最小的負數-32768加1之后計算機中二進制標示為:10000000 00000001 一直加1直到到 11111111 11111111(-1)達到最大的負整數,然后再加1變為:1 00000000 0000000 注意此處字節長度為 17位,而short類型只取 16位即:00000000 0000000 所以-1+1之后變為0 然后00000000 00000000再一直加1直到 01111111 11111111 達到最大正整數(32767),32767再加1變為:10000000 00000000 即為最小的負整數 -32768(2^15)
如圖標示: