●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 |