Double

위키원
dudrb0106 (토론 | 기여)님의 2021년 8월 20일 (금) 13:50 판 (저장과정)
이동: 둘러보기, 검색

double은 변수 선언중에서 실수형(예 : 10.24432)변수를 선언할 때 쓰인다.

범위

C언어에서 double형의 표현 범위는 전체크기가 8바이트 인데 지수부분을 11비트로 늘린 것으로, 소수부분을 52비트로 잡고 같은 방식으로 계산하면 대략 -1.79×10308 ~ 1.79×10308 까지의 값이 나오며,15자리까지 표현할 수 있으며 그 형식은 [1]

저장과정

IEEE 754는 IEEE에서 개발한 컴퓨터에서 부동소수점을 표현하는 가장 널리 쓰이는 표준이며  C에서는 double은 배정도와 대응된다.다음은 실수8.5를 double에 저장과정이다.
  1. 2진수 변환 : 변환하고자 하는 숫자가 8진수, 10진수, 16진수든 상관없이 변환하고자 하는 숫자를 2진수로 변환하는 것으로 8.5를 2진수로 변환하면 1000.1이다.
  2. 정규화 (Specific notation) : 변환한 2진수를 정규화하는 것으로 1000.1x(2^3)(^3 : 세제곱)
  3. IEEE 754 double precision
  • 지수부(exponent) : IEEE 754 는 bias 표현법으로 양수와 음수를 표현하고 지수부(exponent) = bias + power, 지수부가 n비트라면 2^(n-1) - 1을 바이어스 상수라고 하며 정규화결과 1.0001x 2^3이므로 power = 3이고, 지수부는 11bit 이므로 bias = 1023 지수부(exponent) = bias + power = 1023 + 3 = 1026이고 이것을 2진수로 변환하여 지수부에 대응한다.
  • 가수부 : 정규화 한 값의 소수점 아래 부분을 가수부에 순서대로 입력하고 나머지는 모두 0으로 처리하고 소수점 아래 부분은 0001 이므로 00010000.....0000으로 가수부에 입력
이런식의 과정을 거친다.
  1. 이종헌, 〈double vs float 정수형의 표현 범위.〉, 《다음블로그》, 2008-09-16