Representasi Bilangan dan Operasi Aritmatika Eko Didik Widianto ([email protected]) Sistem Komputer - Universitas Diponegoro @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 1 / 53 Review Kuliah • Sebelumnya telah dibahas tentang sintesis rangkaian logika dan teknologi implementasi menggunakan CMOS. Dalam rangkaian logika, diimplementasikan variabel-variabel (masukan dan keluaran) yang menyatakan suatu keadaan switch atau kondisi • Selanjutnya akan dibahas penggunaan variabel ini untuk merepresentasikan bilangan. Representasi bilangan meliputi unsigned dan signed, fixed-point dan floating-point. Kemudian dibahas tentang operasi aritmetika baik penjumlahan maupun pengurangan ◦ Representasi bilangan di sistem digital/komputer ◦ Rangkaian untuk melakukan operasi aritmatika penjumlahan dan pengurangan @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 2 / 53 Bahasan Representasi Posisional Bilangan Desimal Bilangan Biner Bilangan Desimal Konversi Bilangan Bilangan Signed Bilangan Signed Sign-Magnitude 1’s Complement 2’s Complement Operasi Aritmetika Operasi Bilangan Unsigned Ripple Carry Adder (RCA) Operasi Bilangan Signed Unit Penjumlah dan Pengurang Overflow Aritmatika Fixed- dan Floating-Point Bilangan Fixed-Point Bilangan Floating-Point Representasi Lainnya BCD Kode ASCII @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 3 / 53 Representasi Posisional • Bilangan Desimal • Bilangan Biner • Bilangan Desimal • Konversi Bilangan Bilangan Signed Operasi Aritmetika Fixed- dan Floating-Point Representasi Lainnya Representasi Posisional @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 4 / 53 Bilangan Integer dan Desimal Representasi Posisional • Bilangan Desimal • Bilangan Biner • Bilangan Desimal • Konversi Bilangan Bilangan Signed • Dua tipe bilangan 1. Tak bertanda (unsigned): bilangan yang hanya memuat nilai positif 2. Bertanda (signed): bilangan yang memuat nilai positif dan negatif Operasi Aritmetika Fixed- dan Floating-Point • Sistem desimal, unsigned integer Representasi Lainnya ◦ bilangan memuat digit yang mempunyai nilai 0-9 ◦ Bilangan desimal n-digit dapat dinyatakan sebagai D = dn−1 dn−2 · · · d1 d0 ◦ Bilangan D tersebut mewakili nilai integer V (D) = dn−1 ×10n−1 +dn−2 ×10n−2 +· · ·+d1 ×101 +d0 ×100 Misalnya: 8547 mewakili 8 × 103 + 5 × 102 + 4 × 101 + 7 × 100 ◦ Representasi bilangan tersebut disebut representasi posisional • Bilangan desimal disebut bilangan radix-10 atau base-10, karena digitnya mempunayi 10 nilai yang mungkin dan tiap digit berbobot pangkat 10 @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 5 / 53 Bilangan Biner Representasi Posisional • Bilangan Desimal • Bilangan Biner • Bilangan Desimal • Konversi Bilangan Bilangan Signed • Dalam sistem digital, digunakan bilangan biner atau base-2 ◦ Tiap digit (bit, binary digit) mempunyai nilai 0 atau 1 ◦ Sebuah variabel mewakili satu bit Operasi Aritmetika Fixed- dan Floating-Point Representasi Lainnya • Representasi posisional bilangan biner n-digit: B = bn−1 bn−2 · · · b1 b0 • Bilangan B tersebut mewakili nilai integer V(B) V (B) = bn−1 ×2n−1 +bn−2 ×2n−2 +· · ·+b1 ×21 +b0 ×20 = n−1 P bi × 2i i=0 ◦ Misalnya: (1101)2 = 1 × 23 + 1 × 22 + 0 × 21 + 1 × 20 = (13)10 • Bilangan n-bit mewakili bilangan integer positif dari 0 . . . 2n − 1 @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 6 / 53 Bilangan Oktal dan Hexadesimal Representasi Posisional • Bilangan Desimal • Bilangan Biner • Bilangan Desimal • Konversi Bilangan • Representasi posisional dapat digunakan untuk sebarang radix ◦ Untuk radix r, maka untuk bilangan Bilangan Signed Operasi Aritmetika K = kn−1 kn−2 · · · k1 k0 mempunyai nilai integer n−1 P ki × ri i=0 Fixed- dan Floating-Point Representasi Lainnya • Bilangan dengan radix 8 disebut oktal ◦ Digit bernilai dari 0 . . . 7 • Bilangan dengan radix 16 disebut hexadesimal (hex) ◦ Digit bernilai dari 0 . . . 9 dan A . . . F @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 7 / 53 Bilangan di Beberapa Representasi Representasi Posisional • Bilangan Desimal • Bilangan Biner • Bilangan Desimal • Konversi Bilangan Bilangan Signed Operasi Aritmetika Fixed- dan Floating-Point Representasi Lainnya Desimal 0 1 2 3 4 5 6 7 Biner 0000 0001 0010 0011 0100 0101 0110 0111 @2011 eko didik widianto (http://didik.blog.undip.ac.id) Oktal 0 1 2 3 4 5 6 7 Hexa 0 1 2 3 4 5 6 7 Desimal 8 9 10 11 12 13 14 15 Biner 1000 1001 1010 1011 1100 1101 1110 1111 Oktal 10 11 12 13 14 15 16 17 Hexa 8 9 A B C D E F TSK205 Sistem Digital - Siskom Undip – 8 / 53 Konversi Bilangan Representasi Posisional • Bilangan Desimal • Bilangan Biner • Bilangan Desimal • Konversi Bilangan • Konversi bilangan biner ke desimal atau sebaliknya ◦ Biner ke desimal Bilangan Signed V (B) Operasi Aritmetika = bn−1 × 2n−1 + bn−2 × 2n−2 + · · · + b1 × 21 + b0 × 20 = n−1 X Fixed- dan Floating-Point Representasi Lainnya bi × 2i i=0 Misalnya: (11101011)2 ◦ = 27 + 26 + 25 + 23 + 21 + 20 = (235)10 = 235 Desimal ke biner • Bagi bilangan desimal D dengan 2, memberikan hasil bagi (quotient) dan sisa. Sisa nilainya 0 atau 1. Sisa akan menjadi LSB • Bagi quotient dengan 2, memberikan hasil bagi dan sisa. Ulangi pembagian quotient sampai quotient=0 • Untuk setiap pembagian, sisa akan merepresentasikan satu bit bilangan binernya @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 9 / 53 Contoh Desimal ke Biner Representasi Posisional • Bilangan Desimal • Bilangan Biner • Bilangan Desimal • Konversi Bilangan Bilangan Signed Operasi Aritmetika Fixed- dan Floating-Point Representasi Lainnya @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 10 / 53 Konversi Biner-Oktal-Hexadesimal Representasi Posisional • Bilangan Desimal • Bilangan Biner • Bilangan Desimal • Konversi Bilangan • Biner - Oktal ◦ 1 digit oktal merupakan grup 3 digit biner Bilangan Signed Operasi Aritmetika ◦ Konversi biner - oktal: Biner 001 000 110 100 Oktal 1 0 6 4 Oktal 2 3 6 7 Biner 010 011 110 111 Fixed- dan Floating-Point Representasi Lainnya ◦ Konversi oktal - biner: • Biner - Hexadesimal ◦ 1 digit hexa merupakan grup 4 digit biner ◦ Konversi biner - hexa: ◦ Konversi hexa - biner: @2011 eko didik widianto (http://didik.blog.undip.ac.id) Biner 1111 0000 0110 0100 Hexa F 0 6 4 Hexa 2 A C 7 Biner 0010 1010 1100 0111 TSK205 Sistem Digital - Siskom Undip – 11 / 53 Representasi Posisional Bilangan Signed • Bilangan Signed • Sign-Magnitude • 1’s Complement • 2’s Complement Operasi Aritmetika Fixed- dan Floating-Point Representasi Lainnya Bilangan Signed (Bertanda) @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 12 / 53 Bilangan Signed Representasi Posisional Bilangan Signed • Bilangan Signed • Sign-Magnitude • 1’s Complement • 2’s Complement Operasi Aritmetika • Dalam sistem biner, representasi bilangan signed berisi: tanda (sign) dan besar nilai (magnitude) ◦ Tanda diyatakan oleh bit paling kiri (0: bilangan positif, 1: bilangan negatif) Fixed- dan Floating-Point Representasi Lainnya • Bilangan n-bit: 1 bit paling kiri menyatakan tanda, n-1 bit berikutnya menunjukan besar nilai bilangan @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 13 / 53 Bilangan Sign-Magnitude Representasi Posisional Bilangan Signed • Bilangan Signed • Sign-Magnitude • 1’s Complement • 2’s Complement Operasi Aritmetika • Di bilangan signed, terdapat 3 format yang umum digunakan untuk representasi bilangan negatif 1. Sign-Magnitude 2. 1’s Complement Fixed- dan Floating-Point Representasi Lainnya 3. 2’s Complement • Bilangan sign-magnitude menggunakan 1 bit paling kiri untuk menyatakan tanda (0: positif, 1: negatif) dan bit sisanya menyatakan magnitude (besar nilai bilangan). Bilangan 4-bit: 0 1 2 3 4 5 6 7 Positif 0000 0001 0010 0011 0100 0101 0110 0111 Negatif 1000 1001 1010 1011 1100 1101 1110 1111 • Walaupun ini mudah dipahami, tapi ini tidak cocok digunakan di sistem komputer (dibahas di Operasi Bilangan) @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 14 / 53 Bilangan 1’s Complement Representasi Posisional Bilangan Signed • Bilangan Signed • Sign-Magnitude • 1’s Complement • 2’s Complement Operasi Aritmetika Fixed- dan Floating-Point Representasi Lainnya • Skema 1’s Complement: Bilangan n-bit negatif K dapat diperoleh dari mengurangkan 2n − 1 dengan bilangan positif ekivalennya P K = (2n − 1) − P • Misalnya untuk bilangan 4-bit (n=4): K = (24 − 1) − P = 15 − P = (1111)2 − P 0 1 2 3 4 5 6 7 Positif 0000 0001 0010 0011 0100 0101 0110 0111 Negatif 1111 1110 1101 1100 1011 1010 1001 1000 • Terlihat bahwa 1’s complement dapat dibentuk dengan mengkomplemenkan tiap bit bilangan, termasuk bit tanda • Masih ada kekurangan dari penggunaan 1’s complement (dibahas di Operasi Bilangan) @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 15 / 53 Bilangan 2’s Complement Representasi Posisional Bilangan Signed • Bilangan Signed • Sign-Magnitude • 1’s Complement • 2’s Complement Operasi Aritmetika Fixed- dan Floating-Point Representasi Lainnya • Skema 2’s Complement: Bilangan n-bit negatif K dapat diperoleh dari mengurangkan 2n dengan bilangan positif ekivalennya P K = 2n − P • Misalnya untuk bilangan 4-bit (n=4): K = 24 − P = 16 − P = (10000)2 − P 0 1 2 3 4 5 6 7 8 Positif 0000 0001 0010 0011 0100 0101 0110 0111 - Negatif 0000 1111 1110 1101 1100 1011 1010 1001 1000 • Terlihat bahwa 2’s complement dapat dibentuk dengan mengkomplemenkan tiap bit bilangan dan menambahkan 1 ◦ (2’s complement) = (1’s complement) + 1 • Bilangan signed 2’s complement ini yang sering digunakan dalam sistem komputer @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 16 / 53 Aturan Mencari 2’s Complement Representasi Posisional Bilangan Signed • Bilangan Signed • Sign-Magnitude • 1’s Complement • 2’s Complement Operasi Aritmetika Fixed- dan Floating-Point Representasi Lainnya • Jika diberikan satu bilangan signed B = bn−1 bn−2 · · · b1 b0 (baik positif maupun negatif) maka 2’s complementnya K = kn−1 kn−2 · · · k1 k0 dapat diperoleh dengan ◦ Melihat semua bit B dari kanan ke kiri (mulai b0 , b1 , dst) dan mengkomplemenkan semua bit setelah nilai ’1’ yang pertama dijumpai ◦ Jika B=+76 (01001100) maka K=-76 (10110100) ◦ Jika B=-81 (10101111) maka K=+81 (01010001) @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 17 / 53 Bilangan Integer Bertanda (Signed Integer) 4-bit Representasi Posisional b3 b2 b1 b0 sign-magnitude 1’s complement 2’s complement 0111 +7 +7 +7 0110 +6 +6 +6 0101 +5 +5 +5 0100 +4 +4 +4 0011 +3 +3 +3 0010 +2 +2 +2 0001 +1 +1 +1 0000 +0 +0 +0 1000 -0 -7 -8 1001 -1 -6 -7 1010 -2 -5 -6 1011 -3 -4 -5 1100 -4 -3 -4 1101 -5 -2 -3 1110 -6 -1 -2 1111 -7 -0 -1 Bilangan Signed • Bilangan Signed • Sign-Magnitude • 1’s Complement • 2’s Complement Operasi Aritmetika Fixed- dan Floating-Point Representasi Lainnya @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 18 / 53 Jangkauan Bilangan Signed Representasi Posisional #Bit Nama Jangkauan Bilangan Signed • Bilangan Signed • Sign-Magnitude • 1’s Complement • 2’s Complement 4 nible, semioctet s/d 23 − 1 unsigned: 0 s/d 24 − 1 8 byte, octet Operasi Aritmetika signed: − 27 s/d 27 − 1 unsigned: 0 s/d 28 − 1 Fixed- dan Floating-Point Representasi Lainnya signed: − 2 3 16 half-word, word, short signed: − 215 s/d 215 − 1 unsigned: 0 s/d 216 − 1 32 word, long, doubleword, int signed: − 231 s/d 231 − 1 unsigned: 0 s/d 232 − 1 64 doubleword, int64 signed: − 2 63 s/d 263 − 1 unsigned: 0 s/d 264 − 1 n Integer n-bit (bentuk umum) signed: − 2 n−1 s/d 2n−1 − 1 unsigned: 0 s/d 2n − 1 @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 19 / 53 Representasi Posisional Bilangan Signed Operasi Aritmetika • Operasi Bilangan Unsigned • Ripple Carry Adder (RCA) • Operasi Bilangan Signed • Unit Penjumlah dan Pengurang • Overflow Aritmatika Fixed- dan Floating-Point Representasi Lainnya Operasi Penjumlahan dan Pengurangan @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 20 / 53 Operasi Bilangan Unsigned Representasi Posisional Bilangan Signed Operasi Aritmetika • Operasi Bilangan Unsigned • Operasi penjumlahan 2 bilangan 1-bit memberikan 4 kombinasi yang mungkin • Diimplementasikan dengan HA (Half-Adder ) • Ripple Carry Adder (RCA) • Operasi Bilangan Signed • Unit Penjumlah dan Pengurang • Overflow Aritmatika Fixed- dan Floating-Point Representasi Lainnya @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 21 / 53 Rangkaian Full-Adder (FA) Representasi Posisional Bilangan Signed Operasi Aritmetika • Operasi Bilangan Unsigned • Ripple Carry Adder (RCA) • Operasi Bilangan Signed • Unit Penjumlah dan Pengurang • Overflow Aritmatika Fixed- dan Floating-Point Representasi Lainnya @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 22 / 53 Rangkaian Full-Adder (Dekomposisi) Representasi Posisional Bilangan Signed Operasi Aritmetika • Operasi Bilangan Unsigned • Ripple Carry Adder (RCA) • Operasi Bilangan Signed • Unit Penjumlah dan Pengurang • Overflow Aritmatika Fixed- dan Floating-Point Representasi Lainnya @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 23 / 53 Rangkaian Full-Adder (Dekomposisi Lain) Representasi Posisional Bilangan Signed Operasi Aritmetika • Operasi Bilangan Unsigned • Ripple Carry Adder (RCA) • Operasi Bilangan Signed • Unit Penjumlah dan • Persamaan: ◦ ci+1 = xi yi + xi ci + yi ci = xi yi + (xi + yi ) ci ◦ si = xi ⊕ yi ⊕ ci Pengurang • Overflow Aritmatika • Anggap gi = xi yi dan pi = xi + yi , maka ci+1 = gi + pi ci Fixed- dan Floating-Point Representasi Lainnya ◦ Rangkaian? @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 24 / 53 Operasi Penjumlahan Representasi Posisional Bilangan Signed • Operasi penjumlahan 2 bilangan dengan n-bit (n>1) Operasi Aritmetika • Operasi Bilangan Unsigned ◦ Tiap pasang bit ditambahkan • Ripple Carry Adder (RCA) • Operasi Bilangan Signed • Unit Penjumlah dan ◦ Untuk tiap posisi bit i, operasi penjumlahannya mungkin melibatkan sebuah carry-in dari bit posisi (i-1) Pengurang • Overflow Aritmatika Fixed- dan Floating-Point Representasi Lainnya @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 25 / 53 Ripple Carry Adder (RCA) Representasi Posisional Bilangan Signed Operasi Aritmetika • Operasi Bilangan Unsigned • Ripple Carry Adder (RCA) • Operasi Bilangan Signed • Unit Penjumlah dan Pengurang • Overflow Aritmatika • Operasi penjumlahan dimulai dari pasangan digit paling kanan (LSB) sampai ke paling kiri (MSB) • Jika sebuah carry dihasilkan dalam suatu posisi bit i, maka carry tersebut ditambahkan ke operasi penjumlahan di digit dengan posisi i+1 • Operasi ini dapat diwujudkan dengan sebuah rantai full-adder (FA) yang dihubungkan seri Fixed- dan Floating-Point Representasi Lainnya ◦ Konfigurasi ini disebut sebagai penjumlah ripple-carry ◦ Sinyal carry ’ripple’ dari FA satu ke FA berikutnya @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 26 / 53 Kekurangan Ripple Carry Adder Representasi Posisional • Bilangan Signed Operasi Aritmetika • Operasi Bilangan Unsigned • Ripple Carry Adder (RCA) • Operasi Bilangan Signed • Unit Penjumlah dan Tiap FA mempunyai delay tertentu sebelum keluaran si dan ci+1 valid ◦ • Pengurang • Overflow Aritmatika Misalnya, delay propagasi ∆t ◦ Carry dari FA pertama, c1 , akan sampai di FA kedua dalam waktu ∆t setelah input x0 dan y0 ◦ Carry dari FA kedua, c2 , akan sampai di FA ketiga dalam waktu ∆t setelah input x1 , y1 dan c1 atau total 2∆t ◦ Dan seterusnya. Sinyal cn−1 valid setelah (n − 1) ∆t, dan jumlah total akan tersedia setelah delay (n) ∆t Fixed- dan Floating-Point Representasi Lainnya • Delay total tersebut semakin besar seiring semakin banyak jumlah bit bilangan yang harus ditambahkan ◦ • disebut delay propagasi FA dari input ke output Penjumlahan bilangan n-bit akan membutuhkan waktu (n) ∆t dari bit-bit masukan tersedia sampai keluaran valid Delay terbesar dalam rangkaian disebut critical-path delay ◦ Jalur yang menyebabkan delay ini disebut critical path @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 27 / 53 Critical Path RCA Representasi Posisional Bilangan Signed Operasi Aritmetika • Operasi Bilangan Unsigned • Ripple Carry Adder (RCA) • Operasi Bilangan Signed • Unit Penjumlah dan Pengurang • Overflow Aritmatika Fixed- dan Floating-Point Representasi Lainnya @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 28 / 53 Operasi Bilangan Signed Representasi Posisional Bilangan Signed Operasi Aritmetika • Operasi Bilangan Unsigned • Ripple Carry Adder (RCA) • Operasi Bilangan Signed • Unit Penjumlah dan Pengurang • Overflow Aritmatika • Sign-magnitude ◦ Misalnya: operasi 5-2=? ekivalen dengan 5+(-2)=3. Bagaimana implementasinya, apakah 0101+1010? ◦ Perlu rangkaian logika untuk membandingkan dan mengurangkan bilangan Fixed- dan Floating-Point Representasi Lainnya • 1’s complement ◦ Misalnya: (-5)+(-2)=(-7). Ekivalen dengan 1010+1101=(1)0111. Carry 1 harus ditambahkan ke 0111 agar menghasilkan 1000 (=-7) ◦ Perlu koreksi untuk mendapatkan hasil yang benar • 2’s complement ◦ penjumlahan selalu benar @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 29 / 53 Operasi 2’s Complement Representasi Posisional Bilangan Signed • Penjumlahan Operasi Aritmetika • Operasi Bilangan Unsigned • Ripple Carry Adder (RCA) • Operasi Bilangan Signed • Unit Penjumlah dan Pengurang • Overflow Aritmatika Fixed- dan Floating-Point Representasi Lainnya @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 30 / 53 Operasi 2’s Complement Representasi Posisional Bilangan Signed • Pengurangan Operasi Aritmetika • Operasi Bilangan Unsigned • Ripple Carry Adder (RCA) • Operasi Bilangan Signed • Unit Penjumlah dan Pengurang • Overflow Aritmatika Fixed- dan Floating-Point Representasi Lainnya @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 31 / 53 Unit Penjumlah dan Pengurang Representasi Posisional Bilangan Signed Operasi Aritmetika • Operasi Bilangan Unsigned • Ripple Carry Adder (RCA) • Operasi Bilangan Signed • Unit Penjumlah dan Pengurang • Overflow Aritmatika • Operasi pengurangan dapat direalisasikan sebagai operasi penjumlahan dengan menggunakan 2’s complement di pengurangnya (baik positif maupun negatif) ◦ Ini memungkinkan menggunakan rangkaian adder untuk melakukan penjumlahan dan pengurangan sekaligus Fixed- dan Floating-Point Representasi Lainnya • Note: (2’s complement) = (1’s complement) + 1 • 1’s complement dapat diimplementasikan dengan menggunakan XOR ◦ x ⊕ 1 = x dan x ⊕ 0 = x ◦ Jika operasi pengurangan dilakukan, 1’s complementkan bilangan kedua dengan meng-XOR-kan semua bit dengan 1 @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 32 / 53 Unit Penjumlah dan Pengurang Representasi Posisional Bilangan Signed • Menggunakan 2’s complement di bilangan pengurang Operasi Aritmetika • Operasi Bilangan Unsigned • Ripple Carry Adder (RCA) • Operasi Bilangan Signed • Unit Penjumlah dan Pengurang • Overflow Aritmatika Fixed- dan Floating-Point Representasi Lainnya @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 33 / 53 Overflow Aritmatika Representasi Posisional Bilangan Signed Operasi Aritmetika • Operasi Bilangan Unsigned • Ripple Carry Adder (RCA) • Operasi Bilangan Signed • Unit Penjumlah dan Pengurang • Jika n-bit digunakan untuk merepresentasikan bilangan signed, maka hasil penjumlahan atau pengurangan harus dalam jangkauan −2n−1 sampai +2n−1 − 1 • Jika hasil operasi tidak dalam jangkauan ini, maka telah terjadi overflow aritmatika • Overflow Aritmatika Fixed- dan Floating-Point Representasi Lainnya ◦ Untuk memastikan rangkaian aritmatika beroperasi dengan benar, perlu pendeteksi kejadian overflow • Untuk operasi 4-bit, jika c3 dan c4 mempunyai nilai yang sama, maka tidak terjadi overflow @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 34 / 53 Overflow Aritmatika Representasi Posisional Bilangan Signed Operasi Aritmetika • Operasi Bilangan Unsigned • Ripple Carry Adder (RCA) • Operasi Bilangan Signed • Unit Penjumlah dan • Overflow dapat dideteksi dengan: ◦ overflow = c3 ⊕ c4 • Untuk bilangan n-bit Pengurang • Overflow Aritmatika Fixed- dan Floating-Point Representasi Lainnya ◦ overflow = cn−1 ⊕ cn • Bagaimana rangkaian unit penjumlah/pengurang dengan overflow detection? @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 35 / 53 Rangkaian Komparator Bilangan Representasi Posisional Bilangan Signed Operasi Aritmetika • Operasi Bilangan Unsigned • Ripple Carry Adder (RCA) • Operasi Bilangan Signed • Unit Penjumlah dan Pengurang • Overflow Aritmatika Fixed- dan Floating-Point Representasi Lainnya • Misalnya: Bandingkan dua bilangan X = x3 x2 x1 x0 dan Y = y3 y2 y1 y0 ◦ Bisa diimplementasikan dengan rangkaian pengurang (X-Y) ◦ Terdapat 3 output: Z, N, V Z=1 jika (X-Y)=0, hasil lainnya Z=0 • N=1 jika (X-Y)<0, hasil lainnya N=0 • V=1 jika terjadi overflow aritmatika, kalau tidak ada overflow V=0 • ◦ Tunjukkan bagaimana Z, N, V digunakan untuk menentukan X=Y, X<Y, X≤Y, X>Y dan X≥Y @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 36 / 53 Solusi Representasi Posisional Bilangan Signed Operasi Aritmetika • Operasi Bilangan Unsigned • Misalnya X < Y, kemungkinan yang akan terjadi ◦ Jika X dan Y mempunyai tanda yang sama, tidak akan terjadi overflow, sehingga V=0. Dan untuk semua nilai X dan Y (positif/negatif) menghasilkan nilai negatif N=1 • Ripple Carry Adder (RCA) • Operasi Bilangan Signed • Unit Penjumlah dan Pengurang • Overflow Aritmatika ◦ Saat X negatif dan Y positif, maka (X-Y) akan negatif (N=1) jika tidak ada overflow (V=0) dan (X-Y) akan positif (N=0) jika terdapat overflow (V=1) Fixed- dan Floating-Point Representasi Lainnya ◦ Sehingga jika X<Y maka N ⊕ V = 1 • Hasil ◦ X=Y terdeteksi saat Z=1 ◦ X<Y terdeteksi jika N ⊕ V = 1. X≤Y terdeteksi jika Z + (N ⊕ V ) = 1 ◦ X>Y terdeteksi jika Z + (N ⊕ V ) = 1. X≥Y terdeteksi jika (N ⊕ V ) = 1 @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 37 / 53 Rangkaian Komparator 4-bit Representasi Posisional Bilangan Signed Operasi Aritmetika • Operasi Bilangan Unsigned • Ripple Carry Adder (RCA) • Operasi Bilangan Signed • Unit Penjumlah dan Pengurang • Overflow Aritmatika Fixed- dan Floating-Point Representasi Lainnya @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 38 / 53 Representasi Posisional Bilangan Signed Operasi Aritmetika Fixed- dan Floating-Point • Bilangan Fixed-Point • Bilangan Floating-Point Representasi Lainnya Bilangan Fixed-Point dan Floating-Point @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 39 / 53 Bilangan Fixed-Point Representasi Posisional • Bilangan fixed-point terdiri atas bagian integer (digit signifikan) dan pecahan Bilangan Signed Operasi Aritmetika ◦ ◦ Fixed- dan Floating-Point • Bilangan Fixed-Point • Bilangan Floating-Point Representasi Lainnya • Digunakan di mesin yang tidak mempunyai FPU (floating-point unit) Notasi bilangan (n+k) bit: Bn, k = bn−1 bn−2 · · · b1 b0 , b−1 b−2 · · · b−k ◦ • memungkinkan bilangan pecahan (mis: 75,625) n: #bit integer (tanpa bit tanda), k: #bit pecahan. Misal: B3,4 adalah bilangan dengan 3 bit integer dan 4 bit pecahan yang disimpan dalam satu integer 2’s complement 8-bit Nilai bilangan: V(Bn, k) = n−1 P bi × 2i i=−k • Contoh: ◦ B3, 4 = (0101, 1010)2 = 22 + 1 + 2−1 + 2−3 = 5, 62510 = 5, A16 2 −1 −3 = −5, 62510 = ◦ B3, 4 = (1011, 1010)2 = − 2 + 1 + 2 + 2 B, A16 • Rangkaian logika untuk fixed-point sama dengan bilangan integer @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 40 / 53 Konversi Bilangan Fixed-Point Representasi Posisional Bilangan Signed Operasi Aritmetika Fixed- dan Floating-Point • Bilangan Fixed-Point • Bilangan Floating-Point Representasi Lainnya @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 41 / 53 Konversi Bilangan Fixed-Point Representasi Posisional Bilangan Signed Operasi Aritmetika Fixed- dan Floating-Point • Bilangan Fixed-Point • Bilangan Floating-Point Representasi Lainnya @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 42 / 53 Bilangan Floating-Point Representasi Posisional Bilangan Signed Operasi Aritmetika Fixed- dan Floating-Point • Bilangan Fixed-Point • Bilangan Floating-Point • Bilangan fixed-point mempunyai range yang dibatasi oleh digit signifikan yang digunakan untuk merepresentasikan bilangan • Dalam beberapa aplikasi, diperlukan bilangan yang mungkin sangat besar atau sangat kecil Representasi Lainnya ◦ Memerlukan representasi floating-point ◦ Bilangan direpresentasikan dengan mantissa yang berisi bit signifikan dan eksponen dari radix R ◦ Format: mantisa × Reksponen ◦ Bilangan tersebut seringkali dinormalisasi terhadap radixnya. Misalnya untuk radix 10: 1, 5 × 1044 atau 1, 25 × 10−36 @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 43 / 53 Format IEEE Presisi Tunggal Representasi Posisional Bilangan Signed Operasi Aritmetika Fixed- dan Floating-Point • Bilangan Fixed-Point • Bilangan Floating-Point Representasi Lainnya • IEEE mendefinisikan format 32-bit (single precision) untuk nilai floating-point (IEEE 754-1985) ◦ ◦ ◦ • • • 1-bit sign (S) 8-bit eksponen (E) 23-bit mantissa (M) Dalam programming dikenal dengan tipe data float (C, C++, Java) dan single (Pascal, VB, MATLAB) Nilai bilangan: V(B) = (−1)S 1+ 23 P i=1 b−i × 2−i × 2E−127 Baca: http://en.wikipedia.org/wiki/Single_precision @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 44 / 53 Bilangan Float 32-bit Representasi Posisional • Representasi bilangan float Bilangan Signed Operasi Aritmetika ◦ ◦ Fixed- dan Floating-Point • Bilangan Fixed-Point • Bilangan Floating-Point B = (3E200000)16 B=(+)(1.01)2 × 2124−127 = +(0.00101)2 = 0.15625 Representasi Lainnya • Nilai eksponen: ◦ Emin = 1, Emax = 254, menghasilkan eksponen (bias=127): E = 1 − 127 = −126 dan E = 254 − 127 = 127 Eksponen Signifikan=0 signifikan6=0 Persamaan subnormal (−1)S × 0.bit signif ikan × 2−126 (E) 0 0, -0 1-254 255 Nilai ternormalisasi ∞ (−1)S × 1.bit signif ikan × 2E−127 bukan bilangan (NAN=not-a-number) @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 45 / 53 Contoh Bilangan Float 32-bit Representasi Posisional Bilangan Signed • Nyatakan nilai bilangan dari: Operasi Aritmetika Fixed- dan Floating-Point • Bilangan Fixed-Point • Bilangan Floating-Point Representasi Lainnya • Nyatakan bilangan (3.5)10 dalam bentuk IEEE single precision @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 46 / 53 Representasi Posisional Bilangan Signed Operasi Aritmetika Fixed- dan Floating-Point Representasi Lainnya • BCD • Kode ASCII Representasi Lainnya @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 47 / 53 BCD Representasi Posisional Bilangan Signed Operasi Aritmetika • Binary-coded-decimal mengkodekan bilangan desimal dalam bentuk biner • Karena terdapat 10 nilai yang harus diwakili, diperlukan 4 bit per digit Fixed- dan Floating-Point Representasi Lainnya ◦ Dari 0=0000 sampai 9=1001 • BCD • Kode ASCII ◦ Contoh: (01111000)BCD = (78)10 • BCD digunakan di sistem komputer terdahulu dan kalkulator, keypad numerik ◦ Menyediakan format yang memadai saat informasi numerik perlu ditampilkan di display sederhana berorientasi digit ◦ Tapi, membutuhkan rangkaian yang kompleks untuk melakukan operasi aritmatika dan masalah efisiensi kode (6 buah kode tidak digunakan) @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 48 / 53 Operasi dengan BCD Representasi Posisional Bilangan Signed Operasi Aritmetika Fixed- dan Floating-Point Representasi Lainnya • BCD • Kode ASCII • Operasi penjumlahan Z = X + Y ◦ Jika Z ≤ 9, maka S=Z dan Carry=0 ◦ Jika Z > 9, maka S=Z+6 dan Carry=1 @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 49 / 53 Rangkaian Penjumlah BCD 1 Digit Representasi Posisional Bilangan Signed Operasi Aritmetika Fixed- dan Floating-Point Representasi Lainnya • BCD • Kode ASCII @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 50 / 53 Implementasi Rangkaian Penjumlah BCD 1 Digit Representasi Posisional Bilangan Signed Operasi Aritmetika Fixed- dan Floating-Point Representasi Lainnya • BCD • Kode ASCII @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 51 / 53 Kode ASCII Representasi Posisional Bilangan Signed Operasi Aritmetika • Kode yang sering digunakan untuk merepresentasikan informasi di komputer Fixed- dan Floating-Point Representasi Lainnya ◦ American Standard Code for Information Interchange • BCD • Kode ASCII ◦ bilangan, huruf, tanda baca dan kontrol kode • Kode ASCII menggunakan pola 7-bit untuk merepresentasikan 128 simbol ◦ digit bilangan (0-9) ◦ karakter (a-z dan A-Z) ◦ tanda baca ◦ kode kontrol • Kode ASCII ekstended 8-bit mempunyai tambahan simbol untuk 128 karakter grafik (local glyph) ◦ http://en.wikipedia.org/wiki/Extended_ASCII @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 52 / 53 Kode ASCII Representasi Posisional Bilangan Signed Operasi Aritmetika Fixed- dan Floating-Point Representasi Lainnya • BCD • Kode ASCII • • Lihat: http://en.wikipedia.org/wiki/ASCII Sumber: http://en.wikipedia.org/wiki/File:ASCII_Code_Chart-Quick_ref_card.png @2011 eko didik widianto (http://didik.blog.undip.ac.id) TSK205 Sistem Digital - Siskom Undip – 53 / 53