三 進位制、精度,Java的型別轉換
阿新 • • 發佈:2018-12-08
進位制的表示:
- 0b010 : 二進位制表示形式:前面+0n
- 0100 : 八進位制表示形式: 前面+0
- 0x001 : 16進製表示形式:前面+0x
計算機以補碼的方式進行運算
進位制的轉換:
10進位制轉換成任意進位制: 除基倒取餘,結果從按餘數下往上寫
原反補:
- 原碼:二進位制定點表示法,最高位為符號位,0為正,1為負,其餘為數值大小
- 反碼:正數的反碼與原碼相同,負數的反碼對其除符號位之外的原碼逐位取反。
- 補碼:正數的補碼與其原碼相同,負數的補碼在其反碼的末位+1.
7:
- 原碼:0 0000111
- 反碼: 0 0000111
- 補碼: 0 0000111
-7:1 0000111
- 原碼:1 0000111
- 反碼:1 1111000
- 補碼:1 1111001
已知原碼求補碼: 先求反碼。 反碼末位+1就是補碼
資料型別:
Java是強型別語言,對於每一種資料都定義了明確的具體資料型別,
在記憶體中分配了不同大小的記憶體空間
整型:
- byte : 1個位元組 1個位元組8位(二進位制位) 放0和1 2的8次方=256種 -128~127
- short: 2個位元組 1個位元組8位 2的16次方 2的-15次方~2的15-1 0~65535
- int 4個位元組 2的32次方 -2的31~2的31次方-1
- long: 8個位元組 2的 64次方 -2的63次方~2的63次方-1
浮點型:單精度,雙精度 小數預設雙精度
- float: 4個位元組 小數預設double flaot f = 1.1f;
- double: 八個位元組 2的64位
字元型:
- char: 兩個位元組 0~65535
布林型:
- 理論佔1/8個位元組,一個開關就可以決定正負,但java沒有明確指定他的大小
Ex:
byte1個位元組,int4個位元組
當byte和int運算,賦給ints時,byte自動轉化為int(byte前補上3個位00000000 00000000 00000000)
當他們的運算賦給byte時,會報錯,損失精度(int 4變1),所以要強制轉換
byte = byte(int + byte);