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 50 / 2 = 25 sisa 0 25 / 2 = 12 sisa 1 Konversikan bilangan desimal 50 ke bilangan biner dilakukan dengan cara sebagai berikut : 50 / 2 = 25 sisa 0 25 / 2 = 12 sisa 1 12 / 2 = 6 sisa 0 cara membaca hasil 6 / 2 = 3 sisa 0 1 1 0 0 1 0 3 / 2 = 1 sisa 1 1 / 2 = 0 sisa 1
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 Type No. of bytes No. of bits Range unsigned char 1 8 0 … 255 unsigned short 2 16 0 … 65,535 unsigned int 4 32 0 … 4,294,967,295 unsigned long
Signed Integer – Penjumlahan, aturan: • 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
Signed Integer • Sign Magnitude (SM): – Pengurangan, aturan: lakukan jika sign sama, jika sign berbeda, ubah soal ke penjumlahan perbandingkan magnitude, lakukan: a - b menjadi a + (-b) a + b menjadi a - (-b) – Contoh
Signed Data Types Type No. of bytes No. of bits Range char 1 8 -128 … 127 short 2 16 -32,768 … 32,767 int 4 32 -2,147,483,648 .. 2,147,483,647 long
Bilangan Mantissa Basis Eksponen BILANGAN FLOATING-POINT Representasi bilangan floating-point mempunyai tiga bagian: Mantissa Basis Eksponen Contoh : Bilangan Mantissa Basis Eksponen 3 x 106 3 10 6 110 x 28 110 2 8 6132.784 0.6132784 4 34.58 0.3458
Umumnya komputer mengikuti basis 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 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 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.
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.
Setelah dinormalisasi : +1.0110… x 26 E’ = 6 + 127 = 133 = 10000101 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 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 01111110 10000000000000000000000
Typical 32-bit floating-point format Latihan: Typical 32-bit floating-point format +1.638125 X 220 = 10010011 10100011010111000010100 1.638125 X 220 = 1 10010011 10100011010111000010100 +1.638125 X 2―20 = 01101011 10100011010111000010100 1.638125 X 2―20 = 1 01101011 10100011010111000010100