이 영역을 누르면 첫 페이지로 이동
컴퓨터와 수학, 몽상 조금 블로그의 첫 페이지로 이동

컴퓨터와 수학, 몽상 조금

페이지 맨 위로 올라가기

컴퓨터와 수학, 몽상 조금

컴퓨터공학, 딥러닝, 수학 등을 다룹니다.

3. 부동소수점을 활용한 실수 표현 (IEEE 754 Standard Float)

  • 2020.04.11 09:17
  • 학부 수업/디지털시스템
반응형

실수

  • 정수는 이산적이지만, 실수는 연속적이다.
  • 컴퓨터 공학에서, 실수는 Floating Point Numbers라고도 불린다.
  • 아주 크거나 아주 작은 값을 가질 수 있다.
    • $4,123,122,321.2$
    • $0.0000000000002$

Scientific Notation (과학적 기수법)

실수를 아래와 같이 나타낼 수 있다.

$
\begin{align*}
11000.1 &= 11000.1 \times 2^0\\
&= 1100.01 \times 2^1\\
&= 110.001 \times 2^2\\
&= 11.0001 \times 2^3\\
&= 1.10001 \times 2^4\\
\end{align*}
$

정수 부분을 1만 남도록 옮긴 상태를 Scientific Notation이라 한다. Scientific Notation은 아래의 3요소를 갖는다.

  • The significant digits
  • The power
  • The base

이때, Base는 보통 절대적이다.(우리가 알고있다.)

우리의 수 위에서 소수점의 위치는 power에 결정된다. 이것이 실수를 Floating(떠있는) Point(소수점)라고 부르는 이유다.

Floating Point

IEEE의 Float 표준을 따른다.
하나의 실수는 binary32 4-byte 크기에 저장된다.

$(-1)^s \times 1.f \times 2^{e-127}$

  • s = sign (양수면 0, 음수면 1)
  • e = 2의 지수, excess 127 notation을 쓴다. (0~255 사이의 e를 통해 -127~128의 표현)
  • f = binary fraction, 정수부의 1을 제외하고 실수부만을 저장
$s$ $e$ $f$
1-bit 8-bits 23-bits

십진수 / IEEE 변환

  1. 십진수를 이진수로 변환한다.
  2. 이진수를 base 2의 Scientific Notation으로 고쳐쓴다.
  3. 정수부의 1을 제외한 실수부분만 취해 $f$를 얻고 23비트 중 남는 부분은 0으로 뒤를 채운다.
  4. 부호 비트인 $s$를 정한다.
  5. 2의 지수에 127을 더하여 $e$를 구한다.
  6. $e$를 8비트로 변환한다. (필요하면 뒤에 0을 붙인다.)
  7. $s$, $e$, $f$를 IEEE format에 맞게 정리한다.

IEEE / 십진수 변환

  1. 이진수를 1, 8, 23 개씩 나눈다.($s$, $e$, $f$)
  2. $e$를 십진수로 바꾸고, 127을 빼서 지수를 구한다.
  3. $f$ 뒤쪽의 0들을 지우고 $1.f \times 2^exp$ 형태로 정리한다.
  4. 지수가 0이 되도록 소수점을 옮겨 원래 숫자를 얻는다.
  5. 이진수를 십진수로 변환한다.
  6. $s$가 1이면, 마이너스 부호를 붙여준다.

IEEE Special Cases

IEEE floating point는 몇가지 특별한 표현을 갖는다.

  • $e = 0,\quad\quad f = 0$  숫자가 0.0이다.
  • $e = 255,\quad f = 0$  $\infty$ 또는 $-\infty$ 
  • $e = 255,\quad f \not= 0$  Not a number (NaN)
  • $e = 0,\quad\quad f \not= 0$  $(-1)^s \times 0.f \times 2^{-126}$

Floating Point의 덧셈과 뺄셈

  1. 2의 지수가 같도록 두 수를 정렬한다.
  2. 덧셈/뺼셈 연산을 수행한다.
  3. 다시 Scientific Notation으로 정리한다.

Floating Point의 곱셈

  • $1.f$ 끼리는 곱한다.
  • 지수는 서로 더한다.
  • 정리한다.

Floating Point의 나눗셈

  • $1.f$ 끼리는 나눈다.
  • 지수는 뺀다.
  • 정리한다.

 

반응형

'학부 수업 > 디지털시스템' 카테고리의 다른 글

5. 불 대수 (Boolean Algebra)  (0) 2020.04.11
4. 디지털 논리 회로 (Logic Gates)  (0) 2020.04.11
2. 수 체계: 진수 변환과 이진수의 실수/음수 표현(Number System)  (0) 2020.04.11
1. 디지털 시스템 개요  (0) 2020.04.10
세종대학교 디지털 시스템 강의노트  (0) 2020.04.10

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • 5. 불 대수 (Boolean Algebra)

    5. 불 대수 (Boolean Algebra)

    2020.04.11
  • 4. 디지털 논리 회로 (Logic Gates)

    4. 디지털 논리 회로 (Logic Gates)

    2020.04.11
  • 2. 수 체계: 진수 변환과 이진수의 실수/음수 표현(Number System)

    2. 수 체계: 진수 변환과 이진수의 실수/음수 표현(Number System)

    2020.04.11
  • 1. 디지털 시스템 개요

    1. 디지털 시스템 개요

    2020.04.10
다른 글 더 둘러보기

정보

컴퓨터와 수학, 몽상 조금 블로그의 첫 페이지로 이동

컴퓨터와 수학, 몽상 조금

  • 컴퓨터와 수학, 몽상 조금의 첫 페이지로 이동

검색

메뉴

  • 홈
  • 태그
  • 방명록

카테고리

  • 분류 전체보기 (276)
    • Tech Trend (3)
    • Deep Learning (77)
      • 공부 노트 (21)
      • 논문 리뷰 (44)
      • 논문 스키밍 (1)
      • 영상처리 (11)
    • Engineering (3)
      • Tips (2)
      • Experiences (1)
    • Blog (42)
      • 회고 & 계획 (16)
      • 내 이야기 (8)
      • 리뷰 (3)
      • 군대에 간 공돌이 (9)
      • ML엔지니어 취업 도전기 (1)
      • 여행 (4)
    • 학부 수업 (141)
      • 머신러닝 (16)
      • C프로그래밍 (8)
      • 자료구조 (11)
      • 알고리즘 (17)
      • 디지털시스템 (25)
      • 컴퓨터구조 (11)
      • 확률과 통계 (21)
      • 선형대수학 (14)
      • 이산수학 (18)
      • 데이터시각화 (0)
    • 강의 (9)
      • 딥러닝 기초 (7)
      • Python (2)

공지사항

인기 글

정보

백지오의 컴퓨터와 수학, 몽상 조금

컴퓨터와 수학, 몽상 조금

백지오

블로그 구독하기

  • 구독하기
  • RSS 피드

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
반응형

나의 외부 링크

  • profile
  • github
  • linkedin

방문자

  • 전체 방문자
  • 오늘
  • 어제
Powered by Tistory / Kakao. © 백지오. Designed by Fraccino.

티스토리툴바