java基本数据类型所占长度_java基本数据类型长度详解
java基本數據類型
基礎知識
機器數和真值
機器數
一個數在計算機中的二進制表示形式,叫做這個數的機器數
機器數是帶符號的,在計算機用一個數的最高位存放符號, 正數為0, 負數為1
例如:
dec +3 = bit 00000011
dec -3 = bit 10000011
真值
將帶符號位的機器數對應的真正數值稱為機器數的真值
例如:
bit 00000011 真值 bit + 0000011 真值 dec +3(最高位代表符號位)
bit 10000011 真值 bit - 0000011 真值 dec -3(最高位代表符號位)
源碼,返碼,補碼
機器存儲一個具體數字的編碼方式
源碼
原碼就是符號位加上真值的絕對值, 即用第一位表示符號, 其余位表示值
例如:
dec +3 源碼 bit 00000011 = bit +|0000011| = bit 00000011 = +|3| = dec +3
dec -3 源碼 bit 10000011 = bit -|0000011| = bit 10000011 = -|3| = dec -3
反碼
正數的反碼是其本身
負數的反碼是在其原碼的基礎上, 符號位不變,其余各個位取反
例如:
dec -3 源碼 bit 10000011 符號位布標 bit -0000011 取反 bit -1111100 = bit 11111100
補碼
負數以補碼的形式存儲在計算機中
正數的補碼就是其本身
負數的補碼是在其原碼的基礎上, 符號位不變, 其余各位取反, 最后+1. (即在反碼的基礎上+1)
計算規則: 第一步取x的絕對值,第二步計算x的二進制,第三步對二進制取反,最后在加1
例如:
dec -3 源碼 bit 10000011 符號位不變 bit -0000011 取反 bit - 1111100 +1 = bit 11111101
dec -3 = |dec -3| = dec 3 = bit 00000011 取反 bit 11111100 +1 bit 11111101
Java基礎數據類型字節數
1 bit (一個字節) : 0/1 二進制數據
1 byte = 8 bit
1 Byte = 1 byte = 8 bit
1 Short = 2 byte = 16 bit
1 Integer = 4 byte = 32 bit
1 Long = 8 byte = 64 bit
1 Character = 2 byte = 16 bit
1 Float = 4 byte = 32 bit
1 Double = 8 byte = 64 bit
Boolean = false(沒有)
基礎數據類型范圍
byte
byte:-128 ~ 127 = [10000000 ~ 00000001]
-128: |128| = bit 10000000 = bit 01111111 = bit 1000000
127: bit 011111111
Short
Short:
[0x8000 ~ 0x7fff] = [-215 ~ 215] = [-32768 ~ 32767]
[1000000000000000 ~ 111111111111111]
Integer
Integer:
[0x80000000 ~ 0x7fffffff] = [-2^31 ~ 2^31] = [-2147483648 ~ 2147483647] = 21億
[10000000000000000000000000000000 ~ 1111111111111111111111111111111]
Long
[0x8000000000000000L ~ 0x7fffffffffffffffL] = [-263 ~ 263]
[-9223372036854775808 ~ 9,223,372,036,854,775,807] = 10^18
Character
‘\u0000’ ~ ‘\uffff’
常見操作
byte轉換成int
&0xff
原因:
public static void main(String[] args) {
Byte b1 = 1;//00000001
Byte b2 = -1;//按位取反+1:00000001 -> 11111110 -> 11111111
System.out.println(b1);//00000000-00000000-00000000-00000001
System.out.println(b2);//11111111-11111111-11111111-11111111
// 因為byte只有8位,轉換int,只保留8位,所以與上 0xff[00000000-00000000-00000000-11111111]
// 保留了后8位
System.out.println((int)b1 & 0xff);//00000000-00000000-00000000-00000001
System.out.println((int)b2 & 0xff);//00000000-00000000-00000000-11111111
}
總結
以上是生活随笔為你收集整理的java基本数据类型所占长度_java基本数据类型长度详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql jdbc链接配置文件_Jav
- 下一篇: java导出jar带第三方库_在.jar