04/01/11 22:14
>>339
きちんとbyte型にキャストされているので、コンパイルエラーにはなりません。
なぜ、「-128」になるかは、以下の理由
int型は、32bitであり、128 を 2進数 で表すと、以下になる。
00000000000000000000000010000000
byte型は、8bitなので、byte型にキャストすると上位24ビットを削ると以下になる。
10000000
byte型は、符号付きなので、一番左のビットは、符号を表す(0 なら プラス、1 なら マイナス)。
よって、マイナスである。
また、マイナスの値は、2の補数で表されるので、「-128」となる。
2の補数については、googleって下さい。