Floating Point - bongga.dosen.ittelkom-pwt.ac.id · •Notasi biner untuk bilangan desimal berkoma...
Transcript of Floating Point - bongga.dosen.ittelkom-pwt.ac.id · •Notasi biner untuk bilangan desimal berkoma...
Floating Point
Bongga Arifwidodo
Floating Point
• Notasi biner untuk bilangan desimal berkomabilangan real
• Representasi floating point untuk menuliskanbilangan floating point (bilangan pecahan)dilakukan dengan menuliskan dalam bentukexponensial.
Penulisan Notasi Ilmiah
Contoh ; pada bil. Desimal
976.000.000.000.000 ditulis 9,76 x 1014
0,00000000000976 ditulis 9,76 x 10-12
Bilangan Floating Point (Pecahan)
Contoh :
(a) 110,011012 = 1x22 + 1x22 + 0x20 + 0x2-1 + 1x2-2 + 1x2-3 + 0x2-4 + 1x2-5
= 4 + 2 + 0 + 0 + ¼ + 1/8 + 0 + 1/32
= 6 + 0,25 + 0,125 + 0,03125 = 6,4062510
Misal 2,75 = 2 + 0,75
➢ 2 = 21 + 20
• Bilangan biner berpangkat :
2-1 = 1
21= 0,5
2-2 = 1
22=
1
4= 0,25
2-2 = 0,25 (bedakan dengan)
10-1= 1
10= 0,1
➢ 0,75 = 0,5 + 0,25
= 1*2-1 + 1*2-2
• Jadi nilai floating point dari 2,75
= 21 + 20 , 2-1 + 2-2
= 1*21 + 0*20 , 1*2-1 + 1*2-2
2,7510 = 10,112 -> 1,011 x 2-1
Floating Point Sederhana
Floating Point Sederhana
53.610 = … 2
53.6 = 53 + 0.6
53 : 2 = 26 sisa 126 : 2 = 13 sisa 013 : 2 = 6 sisa 16 : 2 = 3 sisa 03 : 2 = 1 sisa 1
Sehingga:5310 = 1101012
0.6 x 2 = 1.2 1.2 > 1 1.2 – 1 = 0.20.2 x 2 = 0.4 0.4 < 1 0.4 – 0 = 0.40.4 x 2 = 0.8 0.8 < 1 0.8 – 0 = 0.80.8 x 2 = 1.6 1.6 > 1 1.6 – 1 = 0.60.6 x 2 = 1.2 1.2 > 1 1.2 – 1 = 0.2Selesai karena sudah loopingSehingga:0.610 = 0.100112
53.610 = 110101.100112
Contoh 1
basis
Floating Point Sederhana
Konversi bilangan floating point ini ke dalamsistem bilangan lainnya?
53.610 = 110101.100112 = … 8 = … 16
110 101 . 100 110
6 5 . 4 6
Bit tambahan pada floating point diletakkan di belakangbilangan
0011 0101 . 1001 1000
3 5 . 9 8
Bit tambahan pada real integer diletakkan didepan bilangan
Konversi ke dalam bilangan oktal
Konversi ke dalambilangan heksadesimal
6
Floating Point SederhanaContoh 2
2,6 2 + 0,6 =10 0,6 x 2 = 1,2 > 1 1,2 - 1 = 0,2
0,2 x 2 = 0,4 < 1 0,4 – 0 = 0,40,4 x 2 = 0, 8 < 1 0,8 – 0 = 0,80,8 x 2 = 1,6 > 1 1,6 – 1 = 0,60,6 x 2 = 1,2 > 1 1,2 – 1 = 0,2
= 010,100110 = 0010,10011000= 2,46 = 2,98
Sehingga 2,610 = 10,1001122,610 = 10,100112
= 2,468= 2,9816
Contoh 3
2,375 2 + 0,375
10 + 0,375 x 2 = 0,75 < 1 0,75 -0 = 0,75
0,75 x 2 = 1,5 > 1 1,5-1 = 0,5
0,5 x 2 = 1
Sehingga 2,37510 = 10.0112
2,7510 = 010.0112 = 2,38
2,7510 = 0010.01102 = 2,616
• Diklasifikasikan dalam dua versi yaitu :
a. single precision
b. double precision
• Komponen dari notasi pecahan (R) adalah M(mantissa atau fraction), E(eksponen), dan B(basis).
Standard IEEE 754 - 2008
R = ±M * B ±E
atau
R = ±M, B, ±E
Sistem Bilangan Biner Bertanda :
• IEEE 754 - 2008 menerapkan standar untukmerepresentasikan bilangan pecahan untukkomputasi baik positif maupun negatif denganmenambahkan komponen sign (s) dengan formula sebagai berikut :
(-1)s x (1+M) x 2E
9
Standard IEEE 754 - 2008
• Sign• Sign hanya menggunakan satu bit
• “0” untuk bilangan dengan nilai positif• “1” untuk bilangan dengan nilai negatif
• Mantissa• Mantissa (fraction) didapatkan dari konversi bilangan biner,
• Eksponen• eksponen didapatkan dari pemetaan true eksponen yang didapatkan
dari rumus:
• Dimana e adalah true exponent (eksponen sebenarnya), dan b adalahpanjang bit eksponen
10
e' = - 1 + eE = 2b-1 - 1
1967,43710 1,967437 x 10-3
R = 1,967437 x 10-3
Mantisa = 0,967437
Basis = 10
Eksponen = -3
Nilai S (+) = 0
Nilai S (-) = 1
S = 1 bit
M = 23 bit
E = 8 bit
Contoh 4
2,610 = 10,100112 1,010011
(-1)0 (1,010011) x 2-1
S = 0
M = 0110011 (dari 0,010011)
E = -1
a. Single Precision
• Memiliki panjang 32 bit, yang terdiri dari:o1 bit sign,
o8 bit eksponen,
o23 bit mantissa.
S EKSPONEN MANTISSA
1 bit 8 bit 23 bit
12
Contoh 5
2,610 = 10,100112 1,010011
(-1)0 (1,010011) x 2-1
S = 0
M = 011001100000000000000000
E = -1 e = 2b-1 – 1
= 28-1 – 1 = 127
e1 = E + e
= -1 + 127 = 126
= 01111110 (biner)
✓ 1 bit sign,✓ 8 bit eksponen,✓ 23 bit mantissa.
e' = - 1 + e
e = 2b-1 - 1
Jadi Single Precision nya :
2,610 = 10,100112
S = 0
M = 01001100000000000000000
e1 = E + e
= -1 + 127 = 126
= 01111110
Caranya menggabungkan S, e aksen dan M :
❖ 00111111001001100000000000000000
Oktal = 001|111|110|010|011|00000000000000000= ..
Heksa = 0011|1111|0010|0110|0000000000000000= …
Single Precision ..2- 0.7510 Floating Point Single Precision
0.75 x 2 = 1.5 1.5 > 1 1.5 – 1 = 0.50.5 x 2 = 1 1 = 1 1 – 1 = 0 (selesai)
Sehingga: 0.7510 = 0.112 floating point sederhana
-(0.11)2 = -(1.1 x 2-1)2Diubah kedalambentuk 1.xyz
Ingat formula: (-1)s x (1+.M) x 2e
Sign (1 bit) s = 1
Eksponen (8 bit) e’ = -1 + ee = 2b-1 – 1 = 28-1 – 1 = 127Sehingga : e’ = -1 + 127 = 12610 = 011111102
e’ = -1 + e1+ .M
Mantissa (23 bit)1.1 = 1+.M M = 1
Sehingga M = 10000000000000000000000
Sehingga single precision floating point dari -0.7510 adalah1 01111110 10000000000000000000000
Dalam heksadesimal: BF400000
b. Double Precision
• Memiliki panjang 64 bit, yang terdiri dari:o1 bit sign
o11 bit eksponen
o52 bit mantissa
S EKSPONEN MANTISSA
1 bit 11 bit 52 bit
16
Clue !
Lakukan langkah-langkah yang sama pada single precision, namun tetapmemperhatikan komposisi sign, eksponen, dan mantissa pada double
precision !