정수형 타입1 [Java 문제] 127 + 1 = ? 문제 : byte b = 127; b += 1; System.out.println(b); byte 타입인 b를 127로 초기화하고 1을 더해주면 몇이 출력 될까? 128? byte 타입 범위가 -128 ~ 127까지니까 에러? 결과는? -128이다 왜 -128이 나왔을까? byte 타입은 8bit이며 맨 앞의 부호비트와 정수의 크기를 나타내는 나머지 7bit로 이루어져있다. 따라서 -128(1000 0000) ~ 127(0111 1111)까지의 숫자를 표현할 수 있다. 위의 바이너리 형식으로 보면 127은 '0111 1111'이 되고 여기에 +1 을 해주면 '1000 0000'이 된다. 이 '1000 0000'는 10진수로 -128이기 때문에 위 코드의 결과가 -128이 나오게 된다. ※ 이와같은 특징 .. 2020. 12. 29. 이전 1 다음