Java 在型別轉換中的奇怪行為:揭開-124 之謎
當嘗試在Java 中將整數指派給位元組時,一個有趣的現象觀察結果如下:整數值132 在轉換為位元組時呈現為-124。這個神秘的結果一開始可能會令人費解。
探索補碼之謎
要解開這個謎團,深入研究 Java 的基本資料類型及其表示形式至關重要。在 Java 中,整數型別(例如 int 和 byte)是有符號的,採用二進位補碼表示法。使用這種表示法,最高有效位元表示符號,當數字擴展到更大的位元大小時,保留其值作為最高有效位元。
尋求無符號的幸福
在大多數情況下,希望將位元組解釋為無符號值,並丟棄任何符號資訊。這可以透過位元運算來實現。例如,對帶符號位元組套用遮罩為 0xff 的按位 AND 可以有效地消除符號位,從而顯示無符號值。
揭秘儀式
The過程展開如下:
該技術允許從有符號整數中無縫提取無符號位元組值。
結論
Java 從 int 的轉換由於底層的補碼表示法,to byte 可以引入微妙但令人著迷的行為。了解這些細微差別有助於解開意外的 -124 輸出背後的謎團,使開發人員能夠在 Java 應用程式中有效地操作資料類型。
以上是為什麼 Java 整數轉換為 132 時位元組結果為 -124?的詳細內容。更多資訊請關注PHP中文網其他相關文章!