Page 41 - 든든한 Java programming 도서 미리보기
P. 41
CHAPTER 2? 변수와 연산자 35
양수에 값을 음수로 표현할 때 각 자리의 값이 1이면 0, 0이면 1으로 변환시킨 방법인
1의 보수에 1을 더한 표현법을 말한다. (그림2-3)은 8bit로 이루어진 데이터에 저장된
0에 대한 1의 보수와 2의 보수를 보여준다.
00000000 0
1 1 1 1 1 1 1 1 1의 보수
1 0 0 0 0 0 0 0 0 2의 보수(1의 보수 +1)
그림 2-3?0의 1의 보수와 2의 보수 표현
컴퓨터 프로그램에서 1의 보수로 표현할 경우 양수의 0과 음수의 0에 대한 2가지 표현
이 발생하고 2의 보수의 경우 하나의 값으로 표현되어 음수를 표현 할 때 2의 보수를
사용한다. 결과에서 127의 이진수인 01111111에서 1을 더한 값은 10000000으로 ?128
을 의미하여 결과로 ?128이 출력되었다.
2.3? 숫자 데이터의 타입 변환
JAVA에서 숫자 데이터를 저장하는 변수들은 서로간의 타입 변환이 가능하다. 정수타입
은 실수타입으로 변환 될 수 있고 실수타입 또한 정수타입으로 변환 할 수 있다. 데이
터 타입을 변화시키기 위해 변환시킬 변수 앞에 변환시킬 데이터 타입을 (?)?에 넣어 표
기한다. 데이터 타입 변환 시 데이터 타입 간의 표현 값의 범위가 존재하기 때문에 범위
가 작은 데이터로 변환 할 때 오버플로우가 발생하여 일부 데이터의 정보를 잃어버릴
수 있다. 또한 실수타입 데이터를 정수 타입으로 변환할 때 소수점 밑의 자리 값에 대
한 데이터 정보를 잃어버릴 수 있다. [코드 2-7]은 int 타입 데이터를 byte 타입 데이터
로 double 타입 데이터를 int 타입으로 변환 시킬 때 발생되는 문제를 보여주는 프로그
램이다.