상세 컨텐츠

본문 제목

[TIL] 2 - 3. 데이터형 - 실수형의 이해

언어/C

by 민:하 2022. 3. 1. 22:24

본문

 

< 실수형의 종류 >

  • float
  • double

 

< 저장방식 >

IEEE754 방식으로 저장

단정도 부동소수 (32bit - float)

  sign bit : 1bit / 지수부 : 8bit / 가수부(유효숫자부) : 23bit

 배정도 부동소수 (64bit - double)

  sign bit : 1bit / 지수부 : 11bit / 가수부(유효숫자부) : 52bit

① signed bit : 가수부(유효숫자부)의 sign (양수 : 0 / 음수 : 1)

② 지수부 저장방식 : 지수승 + Bias 값

③ 가수부 저장방식 : 2진수로 표현된 유효숫자를 2진수 정규화(유효숫자 첫 자리를 2의 0승 자리에 고정)한 후 소수점 이하 유효숫자만 가수부에 저장

 

① 단정도 부동소수

 

② 배정도 부동소수

 

 

< 10진수 소수의 2진법 구하기 >

정수부분과 소수부분을 나누어 정수부분은 원래 하던 방식대로, 소수부분은 *2씩 하여 정수 부분을 추출

 

 

< 표기방식 >

- 소수형 표기 : 12.3, 0.256 (일반적인 부동소수점수 표기 방식)

- 지수형 표기 : 1.824E+4 (매우 작거나 큰 수의 표기 방식)

 

 

< 유효정밀도 >

실수 데이터형에만 있는 개념.

유효숫자를 몇 자리까지 저장할 수 있는가를 10진수 기준으로 나타낸다.

float 형 : 7 ~ 8자리

double 형 : 14 ~ 16자리

 

 

< 실수형의 오차 >

① 유효정밀도에 의한 오차(epsilon 오차 혹은 round off 오류 = 반올림 오류)

② 2진수 변환 시 순환소수로 변환되어 발생하는 오차

ex) float b = 6.33;   // 10진수 유효숫자 3자리 (그런데도 오차 발생)

관련글 더보기

댓글 영역