Floating Point - bongga.dosen.ittelkom-pwt.ac.id · •Notasi biner untuk bilangan desimal berkoma...

17
Floating Point Bongga Arifwidodo

Transcript of Floating Point - bongga.dosen.ittelkom-pwt.ac.id · •Notasi biner untuk bilangan desimal berkoma...

Page 1: Floating Point - bongga.dosen.ittelkom-pwt.ac.id · •Notasi biner untuk bilangan desimal berkoma bilangan real •Representasi floating point untuk menuliskan bilangan floating

Floating Point

Bongga Arifwidodo

Page 2: Floating Point - bongga.dosen.ittelkom-pwt.ac.id · •Notasi biner untuk bilangan desimal berkoma bilangan real •Representasi floating point untuk menuliskan bilangan floating

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

Page 3: Floating Point - bongga.dosen.ittelkom-pwt.ac.id · •Notasi biner untuk bilangan desimal berkoma bilangan real •Representasi floating point untuk menuliskan bilangan floating

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

Page 4: Floating Point - bongga.dosen.ittelkom-pwt.ac.id · •Notasi biner untuk bilangan desimal berkoma bilangan real •Representasi floating point untuk menuliskan bilangan floating

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

Page 5: Floating Point - bongga.dosen.ittelkom-pwt.ac.id · •Notasi biner untuk bilangan desimal berkoma bilangan real •Representasi floating point untuk menuliskan bilangan floating

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

Page 6: Floating Point - bongga.dosen.ittelkom-pwt.ac.id · •Notasi biner untuk bilangan desimal berkoma bilangan real •Representasi floating point untuk menuliskan bilangan floating

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

Page 7: Floating Point - bongga.dosen.ittelkom-pwt.ac.id · •Notasi biner untuk bilangan desimal berkoma bilangan real •Representasi floating point untuk menuliskan bilangan floating

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

Page 8: Floating Point - bongga.dosen.ittelkom-pwt.ac.id · •Notasi biner untuk bilangan desimal berkoma bilangan real •Representasi floating point untuk menuliskan bilangan floating

• 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

Page 9: Floating Point - bongga.dosen.ittelkom-pwt.ac.id · •Notasi biner untuk bilangan desimal berkoma bilangan real •Representasi floating point untuk menuliskan bilangan floating

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

Page 10: Floating Point - bongga.dosen.ittelkom-pwt.ac.id · •Notasi biner untuk bilangan desimal berkoma bilangan real •Representasi floating point untuk menuliskan bilangan floating

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

Page 11: Floating Point - bongga.dosen.ittelkom-pwt.ac.id · •Notasi biner untuk bilangan desimal berkoma bilangan real •Representasi floating point untuk menuliskan bilangan floating

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

Page 12: Floating Point - bongga.dosen.ittelkom-pwt.ac.id · •Notasi biner untuk bilangan desimal berkoma bilangan real •Representasi floating point untuk menuliskan bilangan floating

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

Page 13: Floating Point - bongga.dosen.ittelkom-pwt.ac.id · •Notasi biner untuk bilangan desimal berkoma bilangan real •Representasi floating point untuk menuliskan bilangan floating

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

Page 14: Floating Point - bongga.dosen.ittelkom-pwt.ac.id · •Notasi biner untuk bilangan desimal berkoma bilangan real •Representasi floating point untuk menuliskan bilangan floating

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= …

Page 15: Floating Point - bongga.dosen.ittelkom-pwt.ac.id · •Notasi biner untuk bilangan desimal berkoma bilangan real •Representasi floating point untuk menuliskan bilangan floating

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

Page 16: Floating Point - bongga.dosen.ittelkom-pwt.ac.id · •Notasi biner untuk bilangan desimal berkoma bilangan real •Representasi floating point untuk menuliskan bilangan floating

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 !

Page 17: Floating Point - bongga.dosen.ittelkom-pwt.ac.id · •Notasi biner untuk bilangan desimal berkoma bilangan real •Representasi floating point untuk menuliskan bilangan floating