舉例: int轉bytespa
int exampleB2 = 129; //129往前移兩位得-127 System.out.println((byte)exampleB2); //-127 int exampleB3 = -129; //-129往前移一位得127 System.out.println((byte)exampleB3); //127 int exampleB4 = 256; //256往前移(256-127=129)位,即0 System.out.println((byte)exampleB4); //0
分析:code
想象這個範圍是在數軸上一直連續的區間blog
以中間這個區間爲起始區間,當int = 129時,超出了區間(129-127 = 2)位,在對應的連續區間裏的位置是第二位,第一位是-128,第二位是-127,因此此時強制轉換打印的值是-127,而不是129class
以中間這個區間爲起始區間,當int = -129時,超出了區間(-128 - (-129) = 1)位,在對應的連續區間裏的位置是第一位,數一位,第一位是127,因此此時強制轉換打印的值是127,而不是129im