Search
πŸ’Ύ

Lecture 10 : Floating Points

course
last review
2023/04/12
mastery
intermediate
progress
not started
date
2023/04/12
4 more properties
Previous chapter

Representing Big & Small Numbers

μ—„μ²­ 큰 μˆ˜λ‚˜ μ—„μ²­ μž‘μ€ 수λ₯Ό ν‘œν˜„ν•˜λ €λ©΄ 32-bit μ •μˆ˜ ν‘œν˜„μœΌλ‘œ μΈμ½”λ”©ν•˜κΈ°μ—λŠ” 어림도 μ—†λ‹€. 그러면 μ–΄λ–»κ²Œ ν‘œν˜„ν•΄μ•Ό ν• κΉŒ? κ·Έλž˜μ„œ μ΄λ•Œ Floating Numberλ₯Ό μ‚¬μš©ν•˜μ—¬ ν‘œν˜„ν•  것이닀.

Floating Point Representation

Floating Point

λΉ„ μ •μˆ˜λ₯Ό μœ„ν•œ λ„˜λ²„
β€’
μ •κ·œν™”λœ ν‘œν˜„(normalized)μ΄λž€ μ •μˆ˜μ˜ μžλ¦Ώμˆ˜κ°€ 1자리뿐인 수λ₯Ό λœ»ν•œλ‹€.
β€’
λΉ„μ •κ·œν™”λœ ν‘œν˜„(not normalized)μ΄λž€ μ •μˆ˜μ˜ μžλ¦Ώμˆ˜κ°€ 1이 μ•„λ‹Œ ν‘œν˜„λ²•μ„ λœ»ν•œλ‹€.
μ»΄ν“¨ν„°κ³΅ν•™μ΄λ―€λ‘œ, μ΄μ§„μˆ˜ ν‘œν˜„μœΌλ‘œ λ‚˜νƒ€λ‚΄λ©΄ λ‹€μŒκ³Ό κ°™λ‹€.
x에 ν•΄λ‹Ήν•˜λŠ” 수λ₯Ό fraction number, yλ₯Ό μ§€μˆ˜(exponent number)라고 ν•œλ‹€.

Representing

32λΉ„νŠΈ μ•ˆμ— ν•΄λ‹Ή ν‘œν˜„μ„ λͺ¨λ‘ λ‹€ν•΄μ•Ό ν•œλ‹€.
베이슀 λ„˜λ²„λŠ” λ‹Ήμ—°ν•˜κ²Œλ„ 2(10이 μ•„λ‹ˆλ‹€!) FPALU?의 λ””μžμΈμ— μ˜ν•΄ κ³ μ •λ˜μ–΄μžˆλ‹€.
β€’
E의 λ²”μœ„κ°€ 넓어지면 넓은 λ²”μœ„μ˜ 수λ₯Ό ν‘œν˜„ν•  수 μžˆλ”°.
β€’
F의 λ²”μœ„κ°€ 넓어지면 수의 정밀도가 μ¦κ°€ν•œλ‹€.
E와 F의 λ²”μœ„κ°€ μ‚¬λžŒλ§ˆλ‹€ μ œλ©‹λŒ€λ‘œλ©΄ ν˜Έν™˜μ„±μ— λ¬Έμ œκ°€ 생긴닀!
이λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ IEEE-754λΌλŠ” ν‘œμ€€μ΄ λ„μž…λ˜μ—ˆλ‹€.

IEEE-754

β€’
Single Precision : 32-bit : (1,8,23)
β€’
Double Precision : 64-bit : (1,11,52)
β€’
빨간색 1은 magnitude Number(1의 자리의 μˆ˜κ°€ 항상 1이 λ˜λ―€λ‘œ 이λ₯Ό μƒλž΅ν•˜μ—¬ fraction의 정밀도λ₯Ό 더 μ˜¬λ¦¬λŠ”κ²Œ 합리적이닀!)
β€’
eλŠ” E-bias β‡’ Eλ₯Ό ν‘œν˜„ν•˜κΈ° μœ„ν•΄μ„œλŠ” e+bias둜 κ³„μ‚°ν•˜μž.
β€’
bias NumberλŠ” 각각 2^exp-1λ‹€.
β—¦
single : 2^7 = 128
β—¦
doubl : 2^10 = 1024

Example

-0.75
sign bit = 1
Floating pointμ—μ„œλŠ” sll srlκ°€ μ μš©λ˜μ§€ μ•ŠλŠ”λ‹€!

IEEE-754 Normalized form

E : 0000 0001 ~ 1111 1110κΉŒμ§€λ§Œ Normalized form이닀.
F : Any

Example

Smallest+ : 0 00000001 1.00000000000000000000000 = 1 * 2^{1-127}
Largest+ : 0 11111110 1.11111111111111111111111 =
1.0_2 * 2^-1 : 0 01111110 1.00000000000000000000000
0.75_10 * 2^4 = 1.1_2 * 2^3 : 0 10000010 1.10000000000000000000000
Normalized Formμ—λŠ” Hidden Number 1. 이 μˆ¨μ–΄μžˆλ‹€. λ”°λΌμ„œ Normalized Formμ—λŠ” 0을 ν‘œν˜„ν•  수 μ—†λ‹€.
κ·Έλ ‡λ‹€λ©΄ 0을 μ–΄λ–»κ²Œ ν‘œν˜„ν• κΉŒ?

IEEE-754 Statndard Encoding

Denormal Numbers

β€’
Exponent = 000…0 일경우 Hidden bit이 0이 λœλ‹€.
Denormalized Nuber의 μ˜μ—­ [0, 1.00*2^-126)은 fraction에 μ˜ν•΄ λͺ¨λ“  μˆ˜κ°€ κ²°μ •λ˜λ©°, 간격은 μΌμ •ν•˜λ‹€.
β€’
Exponent = 111…1일 경우 λ‹€μŒκ³Ό 같은 κ²½μš°κ°€ 생길 것이닀.
β—¦
Fraction = 000…0일 경우
β–ͺ
Infinity
β€’
Fraction β‰  000…0일 경우
β—¦
NaN(Not-a-Number)
β—¦

Exception Events in Floating Point

β€’
Overflow : Floating point둜 ν‘œν˜„ν•  수 μ—†λŠ” (μ ˆλŒ€κ°’μ΄)큰
β€’
Underflow : Floating point둜 ν‘œν˜„ν•  수 μ—†λŠ” λ„ˆλ¬΄ μž‘μ€ 수 (0은 μ•„λ‹ˆλ‚˜ ν‘œν˜„ν•  수 μ—†μŒ!)

Support for Accurate Arithmetic

β€’
무쑰건 Round Up
β€’
무쑰건 Round Down
β€’
Truncate
β€’
Round to Nearest Even
β—¦
이진 계산일 경우 쀑간값인 100…을 κΈ°μ€€μœΌλ‘œ νŒλ‹¨ν•  것!
Next chapter