Java(3) - 정수 표현방식의 이해
자료형에 대해 공부하기 전에 정수와 실수를 표현하는 방법에 대해 공부하겠습니다.
실수는 다음 포스팅에서 다루겠습니다.
1. 정수를 표현하는 방식
정수 표현의 기본 원리는 가장 왼쪽에 존재하는 비트는 부호를 표현하는데 사용됩니다.
해당 비트가 0이면 양수, 1이면 음수를 의미합니다.
이 비트가 0인 경우 나머지 비트들은 데이터의 양적인 크기 즉 데이터의 크기를 의미합니다.
예를 들어 00011001은 25가 됩니다.
2. 음의 정수 표현하는 방식
앞서 정수의 표현 방식에서 가장 왼쪽의 비트가 부호를 나타낸다는 것을 공부했습니다.
하지만 음의 정수를 표현하기 위해 해당 비트를 단순히 1로 변경해서 음의 정수가 되는 것은 아닙니다.
그에 대한 예시로 00001과 10001을 더한 10010이 0이 아니라는 것은 명확히 알 수 있습니다.
음의 정수를 표현하기 위해서는 양의 정수 값에 2의 보수를 취하면 됩니다.
3. 2의 보수
간단히 2의 보수를 계산하는 방법만 알아보겠습니다.
- 비트를 반전시킨다. (0->1, 1->0) == 1의 보수를 취한다.
- 반전시킨 비트에 1을 더한다.
예를 들어 양의 정수 5를 나타내는 비트 00000101을 2의 보수로 만들기 위해서는
해당 비트를 반전시킵니다. 11111010
그 다음 1을 더하면 5의 2의 보수인 11111011이 됩니다.
이를 검증하는 예시를 하나 들어보겠습니다.
00000101 + 11111011 = 100000000 이 됩니다.
여기서 올림 수 1은 버려주시면 됩니다.
댓글남기기