最近,雖然我正在通過java中的類型轉換概念,但我已經看到將較大變量類型轉換爲較小變量結果由較小變量範圍的較大變量的模。可以請任何人詳細解釋爲什麼這是這種情況,並且對於任何顯式類型轉換它是真的嗎?爲什麼類型將較大變量投射到較小變量會導致較大變量的模以較小變量的範圍
class conversion {
public static void main(String args[])
{
double a = 295.04;
int b = 300;
byte c = (byte) a;
byte d = (byte) b;
System.out.println(c + " " + d);
}
}
上面的代碼給出d爲44,因爲300的模256的答案是44,請解釋一下爲什麼是這樣的情況,也發生了什麼c的值?
你有沒有想過如果b = 128,那麼modulo的作品,但爲什麼負???檢查 –
評論2:並且,如果b = 255,那麼modulo不起作用,請檢查。 –
是的,我想我知道答案。由於字節數據類型範圍是0到127,如果我們越過127,溢出發生,所以它從-128到-1計數。這就是爲什麼我們不會得到正確的答案b =如果我錯了,請糾正我的錯誤? –