阿神2017-04-18 10:12:02
은 java의 자동 변환으로 인해 발생합니다.
1. 128은 32비트 정수이며 처음 24는 모두 0이고 마지막 8자리는 10000000입니다. 🎜>
2. (바이트)128의 첫 번째 숫자는 바이트로 변환된 후 1이며, Java는 이를 음수의 보수 식별자로 간주합니다
3. System.out.println이 호출되면 Java 유형 시스템이 자동으로 byte 유형을 int로 변환합니다. 이때 처음 24비트는 모두 1이고 마지막 8비트는 1000입니다. 0000, 이는 여전히 -128입니다.4이므로 출력은 -128
입니다.
怪我咯2017-04-18 10:12:02
128
은 int
00000000 00000000 00000000 10000000
유형의 정수이고, 길이는 32
비트
byte
유형 정수의 길이는 8
비트이므로 강제 변환 후 마지막 8
비트는 10000000
의 첫 번째 비트는 왼쪽에서 오른쪽으로 부호 비트, 0
의 값은 0
~127
, 1
의 값은 -128
~-1
이 System.out.println(int)
을 호출하면 Java는 byte -128
을 다시 int -128
그래서 (byte) 128 == (int) -128