●Float (실수)

 ▷컴퓨터로 실수를 표현하는 방법

 ▶바이트 크기

  ▷float: 4

  ▷double: 8

 

 ▶2진수의 소수 표현 (기본)

  ▷특정 위치를 소수점의 기준으로, 2^n의 합을 계산함.

  ▷10진수의 모든 수를 2진수로 표현할 수 없음 (순환소수)

  ▷비트의 범위를 넘어가는 아주 작은 값이나 아주 큰 값을 나타낼 수 없음 (범위가 작음)

 ▶Floating Point Representation

  ▶(-1)^s × M × 2^E

   ▷s: Sign bit, 부호를 나타냄

   ▷M: Significand, 소수점 이하 부분을 나타냄 (1.xxxxx), frac값을 이용해 계산

   ▷E: Expoennt, 2의 지수를 나타냄. exp값을 이용해 계산.

 

  ▶바이트 크기 (s-frac-exp)

   ▷float(32): 1-8-23

   ▷double(64): 1-11-52

   ▷extended(80): 1-15-63/64

 

  ▶exp값에 따른 종류

   ▶Normaized Value: exp ≠ 0000... / 1111...

    ▷E= exp - Bias(=2^(k-1)-1) -> 범위는 -(2^(k-1) -2) ≤ E ≤ 2^(k-1) -1

    ▷M은 1로 시작한다는 전제로, frac을 선언. (1.xxxxxx 에서 xxxxx이 frac) -> 범위는 1.0 ≤ M < 2.0 - ε

 

   ▶Demormalized Value: exp = 0000...

    ▷E = 1-Bias = -(2^(k-1)-2)

    ▷M = 0.xxxx -> 0과 그에 가까운 값들을 표현

 

   ▶Special Value: exp = 1111...

    ▷frac = 0000... -> 무한대, Sign값에 따라 +∞ / -∞ 가 결정

    ▷frac ≠ 0000.... -> Not a Number (NaN)

 

 ▶Float Comparison

  ▷부호 비트 비교

  ▷-0 = 0임을 주의

  ▷NaN값 고려 (어떻게 처리할것인가)

  ▷나머지는 Unsigned Int와 비슷하게 비교 가능

 

 ▶Float Operation

  ▶Rounding (값을 정확히 표현가능하지 않을경우, 유사한 값으로 맞춤)

   ▷toward zero (0과 가까운 값)

   ▷round down (내림)

   ▷round up (올림)

   ▷nearest even (짝수 우선-기본): 반올림을 기본으로 5인경우, 짝수쪽으로 올림/내림

    ▷Postnormalize: Rounding 한 결과가 overflow를 일으키는 경우 (10.xxx)

     ▷exp를 1 더하고, fraction을 1.xxxx로 맞춤.

 

  ▶Multiplication

   ▷s : s1 ^ s2 (XOR)

   ▷M : M1 × M2

    ▷2를 넘으면 E를 1올리며 오른쪽으로 shift해야함

    ▷frac에 맞게 Round필요

   ▷E : E1 + E2

   ▷결합 법칙이 성립하지 않는다. (Overflow, Round 때문)

 

  ▶Addition

   ▷E: E1 (E1>E2 일때)

    ▷M2' = M2 × 2^(-E1+E2)

   ▷s: 결과에 맞춰서

   ▷M: 결과에 맞춰서, Round필요

   ▷결합 법칙이 성립하지 않는다. (Overflow, Round 때문)

'컴퓨터 지식 > 시스템' 카테고리의 다른 글

Assembly-Control  (0) 2020.10.13
Assembly  (0) 2020.10.07
Architecture / Machine Code  (0) 2020.10.07
Integer  (0) 2020.10.06
Bit, Byte  (0) 2020.10.06

+ Recent posts