실수 데이터가 컴퓨터에서 표현되는 방식
컴퓨터는 실수를 정확하게 표현하지 못하기 때문에 근삿값(가까운값)으로 표현을 한다.
ex) 3.141592.... -> 3.14
컴퓨터에서 실수를 표기하는 부동소수점 방식
float a = 21.8125;
1.소수점위와 소수점아래로 나눠서 각각 이진수로 변환
21(16 + 4 + 1) -> 10101
0.8125 -> 1101
2.정규화
10101.1101 -> 0.101011101 * 2의5승
ex) 100은 0.1 * 10의 3승과 똑같은 이치
[부호비트(1Bit)] [지수부(8Bit)] [가수부(23Bit)]
float(4Byte)와 double(8Byte) 차이
둘 다 실수형 데이터를 표현하는 데이터 타입이지만, double을 사용할 경우 훨씬 더 낮은 소수점 아래의 숫자까지 표현이 가능하다.
double이 정밀도가 높기 때문에 최대한 가장 가까운 값을 표현할 수 있다.
정수와 실수의 연산시 어떤 문제점이 있을까?
정수와 실수의 표현방식은 다르기 때문에 컴퓨터는 데이터 타입에 맞춰 하나의 표현방식으로 통일해 연산을 하게 된다.
int a = 4 + 4.0;
실수인 4.0이 정수로 형변환이 되고 정수표현방식으로 연산을 하게 된다.
의도하지 않은 상황이라면 불필요한 형변환은 컴퓨터의 작업량이 늘어나기 때문에 주의해서 사용하는 것이 좋다.
'프로그래밍 언어' 카테고리의 다른 글
증감 연산자 (0) | 2022.03.21 |
---|---|
산술 연산자 (0) | 2022.03.20 |
자료형 (0) | 2022.03.19 |
싱글스레드와 멀티스레드의 장단점 (0) | 2022.03.03 |
자바에서 지역변수가 초기화 되지 않는 이유? (0) | 2022.03.02 |