1. 程式人生 > >java加減的二進制實現

java加減的二進制實現

max 計算 進位 表示 short 取反 整數 機器 基本類型

  Java中整數基本類型有byte,short,int,long,大小分別為1、2、4、8個字節,一個字節大小為8位,也就是8個二進制碼(0/1)組成。

  計算機中二進制碼分為原碼,反碼,補碼。在計算機中正數以原碼存儲,負數以補碼存儲。

  原碼是在機器中表示的形式,首位1代表負數,0代表正數。比如 以byte類型為例, 0000 0001代表正數1,1111 1111 表示-1。 正數的原碼,反碼,補碼相同,負數的反碼為原碼除了符號位,其他位取反。補碼為反碼加1。比如-3原碼為1000 0011,反碼就為1111 1100,存在計算機中的數就是1111 1101。補碼得原碼跟原碼得補碼相同。

  註意:計算機中1000 0000 代表-128。

  在java中如果兩個-128相加,不考慮進位的情況下,結果為 1 0000 0000,因為byte類型,所以1舍棄,最後結果為0。

  同理Integer.MAX_VALUE+Integer.MAX_VALUE結果為-2。

java加減的二進制實現