基本類型int強轉short時發生了什么?


我們知道java中一個int類型占32bits(4字節),一個short占16bits(2字節)
強制轉換時只取低16位(short類型占的那16位),高16位(去掉低位多出來的那部分)屬於溢出不計算,然后以二進制值與低16位的最大值執行按位與計算,得到最終結果

例如:int a=45678956;轉換short結果就是364

10101110010000000101101100
          1111111111111111
          0000000101101100

 關於類型的取值范圍可去網上查詢"補碼 反碼 原碼"相關知識,http://www.jianshu.com/p/3d92fe1c34af這篇"補碼 反碼 原碼"講的很好


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM