Henu
개발냥발
Henu
전체 방문자
오늘
어제
  • 분류 전체보기 (411)
    • DevOps (52)
      • Kubernetes (19)
      • Docker (14)
      • AWS (3)
      • Nginx (4)
      • Linux (4)
      • ArgoCD (1)
      • CN (2)
      • NATS (0)
      • Git (5)
    • Back-End (30)
      • Django (18)
      • Spring (5)
      • JPA (1)
      • MSA (5)
    • CS (87)
      • SystemSoftware (20)
      • OS (25)
      • Computer Architecture (16)
      • Network (23)
      • Database (2)
    • Lang (21)
      • Java (9)
      • Python (4)
      • C# (8)
    • Life (12)
    • 블록체인 (2)
    • Algorithm (204)
      • BOJ (160)
      • 프로그래머스 (19)
      • LeetCode (4)
      • SWEA (1)
      • 알고리즘 문제 해결 전략 (8)
      • DS, algorithms (7)
      • Checkio (5)
    • IT (2)

블로그 메뉴

  • GitHub
  • 글쓰기
  • 관리자

공지사항

  • Free!

인기 글

태그

  • 다이나믹 프로그래밍
  • DFS
  • BFS
  • Kubernetes
  • Network
  • docker
  • 백트래킹
  • django
  • boj
  • 프로그래머스

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Henu

개발냥발

SystemSoftware - float #1
CS/SystemSoftware

SystemSoftware - float #1

2021. 4. 20. 00:29

Float 자료형에 대해서 1

 

 

ex ) $$ 0.111111111..._2 = 1.0 $$

 

float 자료형은

sign bit를 나타내는 S

exponential을 나타내는 exp

fractional value를 나타내는 frac 부분으로 나눌 수 있다

 


Normalized value

exp != 0 || exp != 11111111...1

E = exp - bias

$$Bias = 2^ k / 2 -1$$

 

M 은 소수점 아래 부분에 그대로 들어가게 된다.

 

float F = 15213.0 을 예시로 알아보자

 

15213 = 11101101101101

          = 1.1101101101101 * 2^13

 

M = 1101101101101

frac = 11011011011010000000000

 

E = 13

Bias = 127

Exp = E + Bias = 140

 

Result :

s : 0  , exp : 10001100  ,  frac : 11011011011010000000000


Denormalized value

exp = 0000...0

E= 1 - Bias

-> 실수의 특성 상 표현 못하는 구간은 분명히 발생하지만 표현 가능한 실수의 간격을 되도록이면 일정하게 유지하려는 목적

     이렇게 함으로써 norm 구간과 denorm 구간 사이의 급격한 차이를 없애고 두 구간이 부드럽게 이어짐


Special value

exp = 1111......1

 

case 1 : exp = 1111...1, frac = 000...0 => infinity

case 2 : exp = 1111...1, frac != 000...0 => Not-a-Number(NaN)


Ex)

float F = 0xC0A00000

binary : 11000000101000000000000000000000

 

S = 1 -> negative

E = exp - Bias = 129 - 127 = 2

M = 01000.....0

$$v = (-1)^s M 2^E = (-1)^1 1.25 * 2^2 = -5$$

denorm, norm, special 의 구분

 

 

'CS > SystemSoftware' 카테고리의 다른 글

SystemSoftware - Buffer OverFlow #1  (0) 2021.05.19
Bomb Lab Solution Phase_1 ~ secret_phase  (1) 2021.05.10
SystemSoftware - Machine data(Assembly) #2  (0) 2021.04.30
SystemSoftware - Machine data(Assembly) #1  (1) 2021.04.28
SystemSoftware - float #2  (0) 2021.04.20
    'CS/SystemSoftware' 카테고리의 다른 글
    • Bomb Lab Solution Phase_1 ~ secret_phase
    • SystemSoftware - Machine data(Assembly) #2
    • SystemSoftware - Machine data(Assembly) #1
    • SystemSoftware - float #2

    티스토리툴바