본문 바로가기
2학년 2학기/컴퓨터 구조

3.4 Floating point representation(부동 소수점 표현)

by print_soo 2024. 10. 6.

: 매우 큰 값 또는 매우 작은 값을 표현하기 위한 방식

 

예를 들어 매우 큰값은 12340000, 매우 작은 값은0.0001234 같은 수이다. 

 

 

 

Floating point representation(부동 소수점 표현)

 

 


 

Bit에 따른 정확도와 E, M의 개수 차이

 

 


숫자 범위에 따른 숫자 인코딩 방식

 

1. Normalized

E(exp)에 해당하는 부분이 0도 아니고, 255도 아닌 경우

즉, 0 0 0 0 0 0 0 0도 아니고, 1 1 1 1 1 1 1 1도 아닌경우

 

10진수 소수를 2진수로 나타내는 방식(STEP)

 

STEP 01) 10진수 소수를 2진수로 변경하기

STEP 02) 변경한 2진수를 1.xxx * 2^E 형태로 만들기

STEP 03) 부호 비트 채우기 ➡️ 음수라면 1, 양수라면 0

STEP 04) Exp 비트 채우기 ➡️ Exp = E +  bias를 한다.  64bit일 때는 bias = 1023, 32bit일 때는 bias = 127이다.

STEP 05) Frac 비트 채우기 ➡️ 유효숫자를 Frac 비트 맨 앞부터 채우고, 나머지 부분은 모두 0으로 채운다. 

 

 

 

이제 실제 숫자를 2진수로 변경해보자.

 

 

 


 

 

2. Denormalized

E(exp)에 해당하는 부분이 0인 경우

즉, 0 0 0 0 0 0 0 0인 경우

 

Frac의 값이 모두 0인경우 2진수로 표현할 때는 0으로 표현한다.

Frac의 값이 모두 0이 아닌경우 2진수로 표현할 때는 0에 근접한 아주 작은 값으로 표현한다. 

 

10진수 소수를 2진수로 나타내는 방식(STEP)

 

STEP 01) 10진수 소수를 2진수로 변경하기

STEP 02) 변경한 2진수를 0.xxx 형태로 유지하기 ➡️ 정규화하지 않고 첫 자리가 1이 아닌 그대로 둔다.

STEP 03) 부호 비트 채우기 ➡️ 음수라면 1, 양수라면 0

STEP 04) Exp 비트 채우기 ➡️ Exp는 항상 0으로 설정한다. 이는 지수가 최소값을 의미힌다. E = 1 - bias

STEP 05) Frac 비트 채우기 ➡️ 2진수 값의 유효숫자를 Frac 비트 맨 앞부터 채우고, 나머지 부분은 모두 0으로 채운다.

 

 

 

이제 실제 숫자를 2진수로 변경해보자.

 

 

 


 

 

3. Special Values

  1. Infinity
    • E에 해당하는 부분이 255이고, M에 해당하는 부분이 0인경우
    • 즉, E가 1 1 1 1 1 1 1 1이고, M이 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0인 경우
  2. NaN(Not a Number)
    • E에 해당하는 부분이 255이고, M에 해당하는 부분이 0아닌 경우
    • 즉, E가 1 1 1 1 1 1 1 1이고, M이 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0아닌 경우

 

 


 

부동 소수점으로 표현한 경우들의 범위(ch3 #3의 28:08)

 

 

 

 

 

 

 

 

 

'2학년 2학기 > 컴퓨터 구조' 카테고리의 다른 글

3.6 Error detecting code  (1) 2024.10.06
3.5 Other binary codes  (1) 2024.10.06
3.3 Fixed point representation(정수의 표현)  (1) 2024.10.06
3.2 Complements(보수)  (1) 2024.10.06
3.1 Data types  (1) 2024.10.06