SISTEM BILANGAN SISTEM BILANGAN Sistem Bilangan Desimal Sistem Bilangan Biner Sistem Bilangan Oktal Sistem Bilangan Heksadesimal Sistem Bilangan Desimal Basis 10 Bilangan : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Sistem Bilangan Desimal Contoh : Angka 321 dengan dasar 10 maka : (3 * 102) + (2 * 101) + (1 * 100) = 321 Angka 4532 dengan dasar 10 maka : (4 * 103) + (5 * 102) + (3 * 101) + (2 * 100) = 4532 Sistem Bilangan Biner Basis 2 Bilangan : 0, 1 Sistem Bilangan Biner Contoh : 1110 bilangan desimalnya adalah : (1 * 23) + (1 * 22) + (1 * 21) + (0 * 20) = 8 + 4 + 2 + 0 = 14 110111 bilangan desimalnya adalah : (1 * 25) + (1 * 24) + (0 * 23) + (1 * 22) + (1 * 21) + (1 * 20) = 32 + 16 + 0 + 4 + 2 + 1 = 55 Sistem Bilangan Biner -Konversikan bilangan desimal 50 ke bilangan biner dilakukan dengan cara sebagai berikut : 50 / 2 25 / 2 12 / 2 6/2 3/2 1/2 = 25 sisa 0 = 12 sisa 1 = 6 sisa 0 = 3 sisa 0 = 1 sisa 1 = 0 sisa 1 cara membaca hasil 110010 Sistem Bilangan Oktal Bilangan oktal merupakan bilangan berdasar 8, jadi bilangan ini hanya terdiri dari angka 0 hingga 7. Contoh : 355 bilangan oktal ke desimal : 355 oktal = (3 * 82) + (5 * 81) + (5 * 80) = 192 + 40 + 5 = 237 Desimal 204 bilangan oktal ke desimal : 204 oktal = (2 * 82) + (0 * 81) + (4 * 80) = 128 + 0 + 4 = 132 Desimal Sistem Bilangan Oktal Konversikan 96 desimal menjadi bilangan oktal : 96 / 8 = 12 sisa 0 12 / 8 = 1 sisa 4 hasil : 140 oktal 1 / 8 = 0 sisa 1 Konversikan 1011101 bilangan biner ke bilangan oktal : 1 011 101 1011101 = 1 3 5 Dengan demikian 1011101 (biner) = 135 (oktal) Sistem Bilangan Hexa Desimal Bilangan Hexadesimal merupakan bilangan berdasar 16, jadi bilangan ini terdiri dari angka 0 hingga 9 dan A, B, C, D, E, F Contoh : 3A bilangan desimalnya adalah : 3A Hexa = (3 * 161) + (10 * 160) = 48 + 10 = 58 desimal A341 bilangan desimalnya adalah : A341 Hexa = (10 * 163) + (3 * 162) + (4 * 161) + (1 * 160) = 40960 + 768 + 64 + 1 = 41793 desimal Sistem Bilangan Hexa Desimal Konversikan bilangan desimal 400 menjadi bilangan hexadesimal : 400 / 16 = 25 sisa 0 25 / 16 = 1 sisa 9 hasil = 190 hexadesimal 1 / 16 = 0 sisa 1 Konversikan 11011001101 (biner) menjadi bilangan hexa desimal : 0110 1100 1101 11011001101 = 6 C D Jadi hasilnya adalah 6CD Hexa. Bilangan Integer Bilangan bulat dalam sistem komputer Sign integer (bisa untuk negative positive) Unsign integer (hanya positive) Unsign integer No. of No. of Type bytes bits unsigned char 1 8 unsigned short 2 16 unsigned int 4 32 unsigned long 4 32 Range 0 … 255 0 … 65,535 0 … 4,294,967,295 0 … 4,294,967,295 Signed Integer • Sign Magnitude (SM): – Penjumlahan, aturan: sign tidak dijumlahkan, hanya magnitude buang carry out dari msb magnitude jumlahkan yang sign-nya sama (+ ke + atau - ke - ) sign hasil = sign penambah – Contoh 14 Signed Integer • Sign Magnitude (SM): – Pengurangan, aturan: lakukan jika sign sama, jika sign berbeda, ubah soal penjumlahan perbandingkan magnitude, lakukan: a - b menjadi a + (-b) a + b menjadi a - (-b) – Contoh 15 ke Signed Data Types No. of No. of Type bytes bits char 1 8 short 2 16 int 4 32 long 4 32 16 Range -128 … 127 -32,768 … 32,767 -2,147,483,648 .. 2,147,483,647 -2,147,483,648 .. 2,147,483,647 BILANGAN FLOATING-POINT Representasi bilangan floating-point mempunyai tiga bagian: 1. Mantissa 2. Basis 3. Eksponen Contoh : 17 Bilangan 3 x 106 110 x 28 Mantissa 3 110 Basis 10 2 Eksponen 6 8 6132.784 34.58 0.6132784 0.3458 10 10 4 2 Mantissa dan eksponen direpresentasikan secara eksplisit dalam komputer. Tetapi basisnya (base) adalah yg digunakan oleh komputer tersebut. Umumnya komputer mengikuti basis 2. Umumnya sebuah bilangan f direpresentasikan sebagai f = m x re di mana m adalah mantissa, r adalah basis dari sistem bilangan dan e adalah eksponen (pangkat dari basis yg digunakan). Format umum bilangan floating-point: S 18 Eksponen Mantissa Semula penggunaan format berbeda antar pabrik komputer untuk merepresentasikan bilangan floating-point. Tetapi saat ini telah digunakan format standar ANSI/IEEE secara luas (format IEEE 754). Sedangkan IBM mempunyai standar khusus Ada dua format standar IEEE 754 yg dikeluarkan yaitu untuk presisi tunggal (single precision) dan format standar untuk bilangan presisi ganda (double precision) S Eksponen, 8 bit Mantissa, 23 bit Format floating-point presisi tunggal (32 bit) S 19 Eksponen, 11 bit Mantissa, 52 bit Format floating-point presisi ganda (64 bit) NORMALISASI FLOATING-POINT Bilangan floating-point dapat direpresentasikan dgn banyak cara seperti yg ditunjukkan untuk bilangan desimal 140 x 28: 140 x 28, 14 x 29, 1400 x 27, 1.4 x 210, 0.14 x 211, .014 x 212 .... dst. Suatu bilangan floating-point berada dalam bentuk ternormalisasi jika Most Significant Digit dari mantissa bukan-nol (non-zero). Untuk mengubah menjadi bilangan yg ternormalisasi, mantissa harus digeser ke kanan atau ke kiri dgn tepat, menaikkan atau menurunkan eksponen. Jika semua bilangan floating-point direpresentasikan dalam komputer dgn bentuk ternormalisasi, maka posisi bit satu dapat disimpan dengan mengabaikan MSB (selalu 1). Ini disebut hidden 1 principle. 20 FPS and Hardware Floating point hardware umumnya mempunyai sekumpulan register khusus dan instruksi untuk melaksanakan floating point Juga terdapat instruksi khusus untuk perpindahan data antara memori atau normal register dan floating point register. 21 Contoh: Tuliskan +0.0010110… x 29 dalam format single precision standar IEEE 754 Solusi: Setelah dinormalisasi : +1.0110… x 26 E’ = 6 + 127 = 133 = 10000101 0 22 10000101 0110… Contoh: Tuliskan (0.75)10 dalam format single precision standar IEEE Solusi: Sign bit, S = 1 (negatip) 0.75 x 2 = 1.5 → 1 0.5 x 2 = 1.0 → 1 0.0 x 2 = 0.0 → 0 0.11000000 = 0.11000000 x 20 dinormalisasi = 1.100… x 21 M = 10000000000000000000000000 E=1 E’ = E + 127 = 1 + 127 = 126 = 01111110 Sehingga representasi single precision (0.75)10 : 1 23 01111110 10000000000000000000000 Latihan: Typical 32-bit floating-point format +1.638125 X 220 = 0 10010011 10100011010111000010100 1.638125 X 220 = 1 10010011 10100011010111000010100 +1.638125 X 2―20 = 0 01101011 10100011010111000010100 1.638125 X 2―20 = 1 24 01101011 10100011010111000010100