1. 程式人生 > >在Java中int類型強轉為byte類型,強轉為byte之後,數據超出byte的表述範圍是如何計算的?

在Java中int類型強轉為byte類型,強轉為byte之後,數據超出byte的表述範圍是如何計算的?

ava -128 div string blog pub 二進制 就是 轉換

public class Aa {

public static void main(String[] args) { byte i = 88; byte r = 68; byte f = (byte) (i + r); System.out.println(f);

}

}

輸出結果為-100

  88+68=156;二進制表示為:1001 1100,進行強制轉換為byte後,因為byte是有符號的,取值範圍為:-128-127;1001 1100是一byte數的補碼,我們將它轉為原碼,即減一後再取反,但符號位不能變,得到:1110 0100,這個數也就是-100了

總結 :(88+68)-127+(-128)-1

在Java中int類型強轉為byte類型,強轉為byte之後,數據超出byte的表述範圍是如何計算的?