Java
2013.11.21 21:55
1.4.3 정수형과 실수형의 계산
조회 수 536 추천 수 0 댓글 0
1.4.3 정수형과 실수형의 계산
자바에서 int형 5와 float형 5.0을 표현하기 위해서 4바이트가 필요하다. 이렇게 메모리의 크기는 같지만 비트의 조합이 다른 두 수를 컴퓨터 입장에서 덧셈 계산을 한다고 가정하자. 그렇다면 다음과 같은 생각을 해 볼 수도 있다.
□ 질문
◇ 메모리의 사이즈는 같지만 int형 5와 float형 5.0을 컴퓨터 언어에서 아무런 조치 없이 더할 수 있을까?
분명한 것은 5와 5.0은 메모리에 적재되는 형태가 전혀 다르다는 것이다. 컴퓨터가 이 계산을 하기 위해서는 소수점 형태로 되어 있는 5.0을 정수로 바꾸어서 계산을 하든지, 아니면 정수 5를 소수점 형식으로 변환해야만 가능하다. 일반적인 프로그램에서는 후자의 경우를 선택하게 된다.
□ 기본 데이터 타입의 형변환
◇ 큰 수와 작은 수를 연산했을 때 큰 수로 형변환된다.
◇ 덜 정밀한 수와 정밀한 수를 연산했을 때 정밀한 수로 형변환된다.
◇ 정수와 실수를 연산했을 때 실수형으로 형변환된다.
◇ 작은 수가 큰 수로 형변환되는 것은 자동이다.
― 반대의 경우는 강제 형변환이 필요-오버플로우 발생
◇ 덜 정밀한 수가 정밀한 수로 형변환되는 것은 자동이다.
― 반대의 경우는 강제 형변환이 필요-오버플로우 발생
□ 형변환의 예 double d = 3 * 4.5F;
◇ 3 * 4.5F의 결과는 float형이 된다.(정수와 실수의 연산)
◇ float형의 결과가 double d에 할당되면서 float형이 double형으로 자동 형변환된다.
여러분도 모르는 사이에 내부적으로 데이터 타입을 변환시킨 뒤 계산이 이루어질 수도 있으며, 여러분이 직접 데이터의 형태를 변환한 후 계산을 할 수도 있다.
일단 여기서 주장하고자 하는 것은 가장 기본적인 데이터 타입의 분류는 정수형과 실수형으로 나눌 수 있으며, 이 기준은 비트의 조합에 관련된다는 것이다.
번호 | 분류 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|---|
20 | Java | 3.3.5 값복사 | IT장인 | 2013.12.28 | 337 |
19 | Java | 3.3.6 값복사와 매개변수의 전달 | IT장인 | 2013.12.28 | 460 |
18 | Java | 3.3.7 값복사가 적용되는 곳 | IT장인 | 2013.12.28 | 399 |
17 | Java | 3.4.1 클래스 내의 메서드 | IT장인 | 2013.12.28 | 341 |
16 | Java | 3.4.2 변수와 메서드 결합의 의미 I | IT장인 | 2013.12.28 | 371 |
15 | Java | 3.4.3 변수와 메서드 결합의 의미 II | IT장인 | 2013.12.28 | 386 |
14 | Java | 3.4.4 변수와 메서드의 분리와 결합 | IT장인 | 2013.12.28 | 446 |
13 | Java | 3.4.5 결론 | IT장인 | 2013.12.28 | 343 |
12 | Java | 3.5.1 접근제어란? | IT장인 | 2013.12.28 | 728 |
11 | Java | 3.5.2 private의 접근과 컴파일 에러 | IT장인 | 2013.12.28 | 1398 |
10 | Java | 3.5.3 private에 접근하는 방법 | IT장인 | 2013.12.28 | 5228 |
9 | Java | 3.5.4 private의 사용 이유 | IT장인 | 2013.12.28 | 530 |