原碼就是符号位加上真值的絕對值, 即用第一位表示符号, 其餘位表示值. 比如如果是8位二進制:
[+1]原 = 0000 0001 [-1]原 = 1000 0001
第一位是符号位. 因為第一位是符号位, 是以8位二進制數的取值範圍就是:
[1111 1111 , 0111 1111]
即
[-127 , 127]
原碼是人腦最容易了解和計算的表示方式.
反碼的表示方法是:
正數的反碼是其本身
負數的反碼是在其原碼的基礎上, 符号位不變,其餘各個位取反.
[+1] = [00000001]原 = [00000001]反 [-1] = [10000001]原 = [11111110]反
可見如果一個反碼表示的是負數, 人腦無法直覺的看出來它的數值. 通常要将其轉換成原碼再計算.
補碼的表示方法是:
正數的補碼就是其本身
負數的補碼是在其原碼的基礎上, 符号位不變, 其餘各位取反, 最後+1. (即在反碼的基礎上+1)
[+1] = [00000001]原 = [00000001]反 = [00000001]補 [-1] = [10000001]原 = [11111110]反 = [11111111]補
對于負數, 補碼表示方式也是人腦無法直覺看出其數值的. 通常也需要轉換成原碼在計算其數值.
資料類型轉換必須滿足如下規則:
1. 不能對boolean類型進行類型轉換。
2. 不能把對象類型轉換成不相關類的對象。
3. 在把容量大的類型轉換為容量小的類型時必須使用強制類型轉換。
4. 轉換過程中可能導緻溢出或損失精度,例如: