我們知道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這篇"補碼 反碼 原碼"講的很好