用戶【Andy C.】點評問題和點評內容

【評論主題】15. 下列Java片段程式碼,何者正確?byte a=100;byte b=200;byte c=(byte)(a+b);system.out.print(c);(A)執行時顯示300 (B)執行時

【評論內容】

在 Java 中, byte 的資料型態,能儲存數字範圍為:-128 ~ 127 (二進制表示: 1000 0000 ~ 0111 1111)。故在第二行:byte b = 200 (>127); 就已經發生溢位。因此編譯失敗,無法「執行」程式碼。【註一】Java採用的是 2 補數(Two's complement)表示法。

例如,要算整數 -128 的步驟為:

正值 128 的二進制為:1000 0000。取其補數(將 0 變 1,1 變 0):0111 1111。再加 1:1000 0000。

這就是整數 -128 的2補數表示法。【註二】

1 byte = 8 bits。最左邊的位元稱「最高位元」(MSB)為:正負號;亦稱「有號數」。「最高位元」用來儲存「有號數」的符號;1 代表負號,0 代表正號。Java 不支持「無號數」的資料型態。所以 byte,s...

【評論主題】15. 下列Java片段程式碼,何者正確?byte a=100;byte b=200;byte c=(byte)(a+b);system.out.print(c);(A)執行時顯示300 (B)執行時

【評論內容】

在 Java 中, byte 的資料型態,能儲存數字範圍為:-128 ~ 127 (二進制表示: 1000 0000 ~ 0111 1111)。故在第二行:byte b = 200 (>127); 就已經發生溢位。因此編譯失敗,無法「執行」程式碼。【註一】Java採用的是 2 補數(Two's complement)表示法。

例如,要算整數 -128 的步驟為:

正值 128 的二進制為:1000 0000。取其補數(將 0 變 1,1 變 0):0111 1111。再加 1:1000 0000。

這就是整數 -128 的2補數表示法。【註二】

1 byte = 8 bits。最左邊的位元稱「最高位元」(MSB)為:正負號;亦稱「有號數」。「最高位元」用來儲存「有號數」的符號;1 代表負號,0 代表正號。Java 不支持「無號數」的資料型態。所以 byte,s...