Bagian 4
Floating Point
g pecahan
Bilangan p biner
Representasi floating point standar IEEE 754
Pengkodean floating point
Normalized
Denormalized
Nilai khusus
Rounding
Operasi floating point
Floating point pada C
2
Bilangan Pecahan Biner
2i
Representasi bilangan :
2i1
i
bk 2
k
b=
4 k = j
binary point
2
1 Bit sebelah k binary
b l h kiri b point
merepresentasikan bobot 2k
bi bi1 b2 b1 b0 .b1 b2 b3 bj
Bit sebelah kanan binary
1/2
/ point merepresentasikan
1/4 bobot 2-k
1/8
2j
Contoh :
101.112 merepresentasikan bilangan 1 x 22 + 0 x 21 + 1 x 20 + 1 x 2-1 + 1 x 2-2
=4+0+1++
= 5
3
Bilangan Pecahan Biner
Bilangan
a ga mendekati
d a 1 memiliki bentuk
b u 0.111111
0 2
Contoh : 63/64 = 1/2+1/4+1/8+1/16+1/32+1/64 = 0.1111112
Direpresentasikan dengan notasi 1.0
4
Keterbatasan Pecahan Biner
Nilai Representasi
1/3 0.0101010101[01]2
1/5 0.001100110011[0011]2
1/10 0.0001100110011[0011] 2
0.0001100110011[0011]
Akurasi dapat dinaikkan dengan menambah bit, tetapi tetap saja tidak
dapat merepresentasikan secara eksak
5
Bilangan Floating Point
p
Merupakan p
aproksimasi g real
dari bilangan
Merepresentasikan bilangan real dalam bentuk V = x x 2y
Tidak selalu memberikan hasil eksak, dapat terjadi pembulatan
6
Floating Point Standar IEEE
Ide
Bentuk V = x x 2y ingin direpresentasikan dengan hanya memberikan
nilai x dan y-nya saja
s exp frac
8
3 Kasus Kode Floating Point
9
Nilai Normalized
Berlaku untuk kondisi exp 0000 dan exp 1111
Eksponen
k Ed
diinterpretasikan
k dalam
d l bentuk
b k bias
b
E = e bias
e : nilai unsigned yang dikonversikan langsung dari exp
bias : nilai bias = 2k-1 1, dimana k adalah banyaknya bit exp
single precision : bias = 127, e = 1 s/d 254, E = -126 s/d 127
double precision : bias = 1023, e = 1 s/d 2046, E = -1022 s/d 1023)
s exp
p frac
Kasus denormalized
e p = 0000,
exp 000 0 frac = 0000
000 0
Merepresentasikan nilai 0
Terdapat perbedaan antara nilai +0 and 0, berdasarkan nilai bit s
exp = 0000, frac 0000
Bilangan
Bil yang sangatt dekat
d k tddengan 0.0
00
Sifat gradual underflow, semakin kecil semakin presisi
s exp
p frac
s exp
p frac
Ringkasan
g pengkodean
p g bilangan
g real floating
g point
p :
1. Normalized
2. Denormalized
3 Nilai khusus
3.
Tak hingga (infinity)
Not a Number
NaN NaN
0 +0
13
Distribusi Nilai
Misalkan : floating point 6 bit, format menyerupai IEEE
sign s = 1 bit, eksponen exp = 3 bit, pecahan frac = 2 bit
-15 -10 -5 0 5 10 15
-1 -0,5 0 0,5 1
-15 -10 -5 0 5 10 15
D
Denormalized
li d N
Normalized
li d Infinity
f
14
Contoh Kode Floating Point
1/4
Diberikan representasi floating point 8-bit (tiny)
Satu bit tanda s terletak di most significant bit
Empat bit berikutnya adalah eksponen exp
Tiga bit terakhir adalah frac
7 6 3 2 0
s exp frac
15
Contoh Kode Floating Point
2/4
exp e E 2E kasus
0000 000 0 0
0000 001 1/8 1/8
0000 010 2/8 2/8
denormalized
0000 110 6/8 6/8
0000 111 7/8 7/8 Perhitungan nilai M
0001 000 0 8/8
0001 001 1/8 9/8 denormalized : M = f
normalized : M = 1 + f
0110 111 7/8 15/8 f = 0.xxx2, x adalah bit-bit frac
0111 000 0 8/8
0111 001 1/8 9/8
normalized
1110 110 6/8 14/8
1110 111 7/8 15/8
1111 000 - - tak hingga
17
Contoh Kode Floating Point
4/4
s exp frac Perhitungan nilai V = (1)s xMx 2E
0 0000 000 0
0 0000 001 1/8*1/64 = 1/512 bilangan terdekat ke nol
0 0000 010 2/8*1/64 = 2/512
D k i i
Deskripsi exp f
frac Nil i Numerik
Nilai N ik
Zero 0000 0000 0.0
1.4 X 1045
22
Pembulatan Bilangan Biner
23
Floating Point pada C
Bahasa C memiliki dua format floating point :
float single precision (32 bit)
double double precision (64 bit)
Casting antara format int, float, dan double mengubah nilai
numerik dan representasi bit-nya
bit nya :
Dari int ke float
Bilangan tidak akan overflow, tetapi dapat mengalami pembulatan
Dari
D i int atau
t float ke
k double
Konversi secara eksak, double memiliki range dan presisi lebih besar
Dari double ke float
Dapat mengalami overflow (+ atau )
Dapat juga terjadi pembulatan, karena presisi lebih rendah
Dari double atau float ke int
Memotong bagian pecahan, mendekati nol, beda dengan rounding
24
Ariane 5
26