Bab 2: Sistem Nombor, Operasi dan Kod Pada akhir bab ini, pelajar dapat: • mengenali pelbagai jenis nombor asas • menukar nombor dari satu asas ke asas yang lain • mengungkap nombor negatif menggunakan kaedah pelengkap dan magnitud bertanda • melaksanakan operasi aritmetik ke atas mana-mana sistem nombor • menukar nombor ke beberapa jenis kod seperti BCD, Gray, dan ASCII
2.1 Sistem Nombor Berkedudukan
Nombor yang selalu kita gunakan dalam hidup kita hanya terdiri daripada 10 simbol atau angka, 0 hingga 9. Sistem nombor ini dikenali sebagai sistem perpuluhan (decimal). Ambil nombor 54310 sebagai contoh. Subskrip 10 menunjukkan nombor itu adalah dalam asas 10. Setiap angka dalam nombor tersebut mewakili nilai “rumah” tertentu. Angka “3” adalah “rumah sa”, angka “4” adalah “rumah puluh” manakala angka “5” adalah “rumah ratus”. Inilah yang kita telah belajar semasa kecil dahulu. Sebenarnya, istilah yang lebih tepat untuk “rumah” adalah pemberat (weight). Setiap angka dalam mana-mana nombor asas akan mempunyai pemberatnya yang tersendiri. Untuk asas 10, nilai pemberat adalah 10n di mana n ialah kedudukan angka dalam nombor. Sebagai contoh, 491.610 = (4 x 102) + (9 x 101) + (1 x 100) + (6 x 10-1) Sistem nombor yang digunakan dalam dunia komputer pula adalah sistem penduaan (binary). Dalam sistem ini, hanya dua digit atau bit digunakan, iaitu 0 dan 1. Asas 2 mempunyai pemberat bernilai 2n. Sebagai contoh, nombor 110110.1012 mempunyai 9 bit; pemberat bit pertama ialah 25 (= 3210) manakala pemberat bit terakhir ialah 2-3 (= 0.12510). Bit yang bernilai paling tinggi dikenali sebagai MSB (Most Significant Bit). Bit yang nilainya terendah dikenali sebagai LSB (Least Significant Bit). Bayangkan nombor 10001110101001100100111012. Pengendalian nombor ini oleh komputer adalah begitu mudah sekali tetapi bagi kita untuk mengendalikannya adalah amat sukar kerana terlalu banyak 1 dan 0. Oleh itu, sistem perlapanan (octal) dan perenambelasan (hexadecimal) diperkenalkan. Perlapanan mempunyai lapan simbol, 0 hingga 7 manakala perenambelasan mempunyai 16 simbol, 0 hingga 9, A hingga F. Pemberat untuk nombor asas 8 ialah 8n manakala untuk asas 16 ialah 16n.
1
2.1 !" !" # !" !$ !$ & ! $
10112 A16 %
Asas 10 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
1810 F16 # 9916 2BF
Asas 2
11101112
Asas 8
Asas 16
Jadual 2.1 Empat Sistem Nombor Asas
Selain daripada empat sistem nombor di atas, nombor asas yang lain perlu juga diketahui seperti asas 3, asas 5, asas 9 dan sebagainya. Konsep pemberat dalam sistem nombor ini adalah sama dengan empat yang di atas.
2.2 Penukaran Nombor
Kita tidak mahu bergantung kepada jadual di atas untuk menukar nombor dari satu asas ke asas yang lain. Oleh itu, teknik-teknik pertukaran perlu diketahui. 2.2.1
Pertukaran Dari Nombor Asas Sepuluh Bagi nilai yang lebih besar daripada sifar, kaedah pembahagian ulangan (repetitive division) digunakan. Bagi nilai yang kecil daripada sifar, kaedah pendaraban ulangan (repetitive multiplication) digunakan. 75.8510
2
2.2.2
Pertukaran ke Nombor Asas Sepuluh Untuk menukar dari mana-mana sistem nombor ke nombor asas sepuluh, kaedah penambahan pemberat (sum-of-weights) digunakan. Setiap digit didarabkan dengan pemberat masing-masing, kemudian dijumlahkan untuk mendapatkan nilai asas 10. 1100110.112, 305.68
2.2.3
Pertukaran dari Nombor Asas Lapan dan Enam Belas ke Asas Dua Digit terbesar dalam asas 8 ialah 78. Satu digit asas 8 boleh diwakili oleh 3 bit. Manakala digit terbesar dalam asas 16 ialah F16 yang boleh diwakili oleh 4 bit. Oleh itu, apabila diberi satu nombor asas 8, setiap digit nombor tersebut hendaklah ditukar ke nilai asas 2 menggunakan tiga bit. Pemberat untuk set 3 bit ialah 4 2 1. Manakala setiap simbol dalam nombor asas 16 hendaklah dtukar ke nilai asas 2 menggunakan empat bit. Pemberat untuk kumpulan 4 bit ialah 8 4 2 1. 73.568
2.2.4
1B9.C16
E52.0F16
.
Pertukaran dari Nombor Asas Dua ke Asas Lapan dan Enam Belas Untuk menukar dari asas dua ke asas 8, bit-bit dikumpulkan bertiga-tiga dan setiap set tiga bit itu ditukarkan ke satu digit asas lapan. Manakala untuk menukar ke asas 16, bitbit dikumpulkan dalam kumpulan berempat sebelum ditukarkan ke satu digit asas enam belas. Pengumpulan bit-bit mesti dimulakan di titik perpuluhan. "
11001010110.11011012
3
2.2.5
Pertukaran dari Nombor Asas Lapan ke Asas Enam Belas dan Sebaliknya Nombor asas 8 tidak boleh ditukar ke asas 16 secara langsung, dan begitu juga sebaliknya Nombor itu mesti ditukar ke asas 2 atau asas 10 terlebih dahulu. Pertukaran melalui nombor asas 2 adalah lebih mudah berbanding asas 10. Cara pertukaran yang dipelajari dalam seksyen 2.2.3 dan 2.2.4 digunakan.
! 307.6418
2.2.6
! A5D.3B16
Pertukaran Asas-asas yang Lain Secara amnya, pertukaran nombor boleh dibuat dalam mana-mana asas. Katakan nombor 2036 hendak ditukar ke asas 11, bagaimanakah caranya? Nombor itu hendaklah ditukar ke asas 10 terlebih dulu. Dengan menggunakan teknik yang dipelajari dalam seksyen 2.2.2, maka 2036 = 7510. Seterusnya, nombor asas 10 itu ditukar ke asas 11 menggunakan teknik dalam seksyen 2.2.1, menghasilkan 6911. ! 2A01
2.3
! 2012103
Operasi Nombor secara Aritmetik
Anda telah mempelajari operasi penambahan, penolakan, pendaraban dan pembahagian dalam sistem perpuluhan sebelum ini. Kali ini, tumpuan akan diberi kepada operasi yang melibatkan asas-asas yang lain. 2.3.1
Operasi Penambahan Sekiranya nombor yang hendak ditambah berlainan sistem, maka hendaklah disamakan asasnya sama ada menukar salah satu atau kedua-dua nombor itu. Kemudian, nombor itu ditambah seperti dalam asas 10. Hasil tambah itu perlu ditukar ke asas yang asal dan sekiranya terdapat pembawa, ia hendaklah ditambah ke digit berikutnya.
4
"
a) 11101012 + 1101102 + 10110112 = ( b) 3758 + 4338 = ( )8 c) B8.9C 16 + 143.F16 = ( )16
2.3.2
Operasi Penolakan Konsep penolakan dalam nombor asas yang lain adalah sama seperti dalam asas 10. Dalam nombor asas 10, apabila nilai yang ditolak adalah lebih besar, pinjaman bernilai 10 hendaklah dibuat dari digit berikutnya. Nilai pinjaman ini ditambah ke digit penolak sebelum melakukan operasi penolakan. Dalam asas 2, pinjaman adalah bernilai 2 manakala dalam asas 8, pinjaman bernilai 8 dan begitulah seterusnya. '
a) 110010012 - 1001112 = ( b) 5268 - 2438 = ( )8 c) 375.A16 - B4.C516 = (
2.3.3
)2 )16
Operasi Pendaraban Apabila kita mendarab dalam perpuluhan, setiap digit dalam dua nombor itu didarab dan menghasilkan komponen-komponen produk (partial products). Komponen ini kemudiannya ditambah mengikut aturan yang ditetapkan. Untuk sistem nombor bukan asas 10, pendaraban digit dan komponen yang terhasil adalah masih dalam asas sepuluh. Selepas komponen-komponen itu ditambah, hasilnya mesti ditukar ke sistem nombor yang sepatutnya. Contoh: Lakukan pendaraban berikut. a) 3A516 x A16 = ( )16
2.3.4
)2
b) 1638 x 348 = (
)8
Operasi Pembahagian Pembahagian dalam sistem nombor bukan asas 10 adalah sukar. Nombor yang hendak dibahagi boleh ditukar ke asas 2 untuk memudahkan pembahagian. Nilainya ‘1’ jika digit dalam nombor itu boleh dibahagi 2 manakala nilainya ‘0’ jika sebaliknya. Namun, anda akan pening kepala melihat rangkaian 1 dan 0 yang panjang. Cara yang lain adalah untuk membahagi dalam asas 10.
5
(
a) 11010112 ÷ 1012 = ( )2 b) 2018 ÷ 78 = ( )8 kepada dua tempat perlapanan.
2.4
Perwakilan dan Operasi Nombor Bertanda
Setakat ini, kita cuma menumpu kepada magnitud sesuatu nombor tanpa melihat sama ada nombor itu positif atau negatif. Kini, tanda tersebut akan diambil kira. Ada dua cara untuk mewakilkan nombor bertanda: 1) magnitud bertanda (signed magnitude), dan 2) pelengkap (complement). Teknik magnitud bertanda: Biasanya kita menggunakan simbol “+” untuk nombor positif dan “-“ untuk nombor negatif. Kali ini, satu digit bertanda akan digunakan. Untuk nombor asas 10, wakilkan dengan digit ‘0’ jika positif dan ‘9’ jika negatif. Untuk nombor asas 2, wakilkan dengan digit ‘0’ jika positif dan ‘1’ jika negatif. Untuk nombor asas 8, wakilkan dengan digit ‘0’ jika positif dan ‘7’ jika negatif. Untuk nombor asas 16, wakilkan dengan digit ‘0’ jika positif dan ‘F’ jika negatif. Secara amnya, untuk nombor asas r, wakilkan dengan digit ‘0’ jika positif dan ‘r-1’ jika negatif. a) + 3518 = 0, 351 SM, 8 c) - 1001012 = 1, 100101
SM, 2
b) - 7C.3 16 = F, 7C.3 SM, 16 d) + 10010 = 0, 100 SM, 10
Teknik pelengkap : Terdapat dua jenis pelengkap, salah satu daripadanya ialah pelengkap-r (r’s complement) yang juga dikenali sebagai pelengkap asas (radix complement) atau pelengkap sebenar (true complement). Satu lagi pelengkap ialah pelengkap (r-1) juga disebut sebagai pelengkap asasmenyusut (diminished-radix complement) atau pelengkap asas-tolak-satu (radix-minus-one complement). Jadual 2.2 di bawah menunjukkan nama kedua-dua pelengkap untuk beberapa sistem nombor. Asas, r 2 8 10 16
Pelengkap-r Pelengkap-2 Pelengkap-8 Pelengkap-10 Pelengkap-16
Pelengkap (r-1) Pelengkap-1 Pelengkap-7 Pelengkap-9 Pelengkap-15
Jadual 2.2 Pelengkap-r dan pelengkap (r-1)
Formula untuk mendapatkan kedua-dua pelengkap adalah seperti di bawah.
!
! " " # " " &
6
%$ Formula tersebut hanya digunakan jika N negatif. Sekiranya N positif, pelengkap untuk N ialah “0, N” untuk semua nombor asas. Selain daripada formula di atas, kaedah songsangan juga boleh digunakan. 2.3
Nombor, N
)
Magnitud bertanda
Pelengkap-r
Pelengkap (r – 1)
+ 39 10 - 175 8 + 1110012 - 1001.102 - 73.5 10 + 34.06 8 - AA 16 Jadual 2.3 Magnitud bertanda dan pelengkap untuk nombor asas N
Sekiranya diberi nombor pelengkap-r atau pelengkap (r-1), bolehkah anda mencari nilai perpuluhannya? Jika nombor itu adalah pelengkap-r, teknik penambahan pemberat seperti dalam seksyen 2.2.2 digunakan. Bezanya kali ini, pemberat digit pertama adalah bernilai negatif dan tidak perlu didarabkan dengan digit itu sendiri. Jika nombor itu adalah pelengkap (r-1), nilai “1” perlu ditambah kepada hasil penambahan pemberat. )
a) 10010101 pelengkap-2, c) 9158 pelengkap-10, 10
2
b) 0101101 pelengkap-2, 2 d) 10011pelengkap-1, 2
Operasi aritmetik boleh juga dilakukan pada nombor bertanda. Untuk kursus ini, hanya operasi penambahan dan penolakan dititikberatkan. Namun, penolakan juga boleh dilihat sebagai penambahan nombor negatif. Oleh itu, penumpuan kita adalah khusus kepada operasi penambahan sahaja. Nombor bertanda yang hendak ditambah hendaklah ditukar kepada pelengkap-r. Nombor magnitud bertanda adalah tidak sesuai untuk operasi aritmetik. ' " " " ! ! ! ( % ! ! " " ! ! ! ( % )* ! $ " ! ! ( % )* + % !, (!* ! % " . )* / % e) 0 ! ! % " - )* 0 ! % % . % % %
7
( ( %
!
% ! -
*
'
a) 3610 – 4510 b) - 1910 - 3010 (Gunakan saiz 8 bit untuk pelengkap-2)
2.5
Sistem Kod
Selain daripada sistem bernombor, kita juga perlukan sistem kod yang mengenkod nombor, aksara dan lain-lain simbol kepada rangkaian bit yang unik. Tiga sistem kod akan dibincangkan iaitu BCD, kod Gray dan kod ASCII. 2.5.1
BCD (Binary-Coded-Decimal) Kita tahu sistem perpuluhan hanya mempunyai sepuluh digit. Digit terbesar ialah 9 dan ia boleh diwakili oleh 4 bit. Jika setiap digit asas sepuluh dienkodkan ke sistem penduaan menggunakan pemberat 8 4 2 1, maka jadual 2.4 akan diperoleh. Jadual ini menunjukkan nombor ‘perpuluhan-terkod-penduaan’ ataupun BCD. Digit Perpuluhan 0 1 2 3 4 5 6 7 8 9
BCD ( 8 4 2 1) 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001
Jadual 2.4 Digit perpuluhan dan BCD.
Perhatikan bahawa kombinasi 1010, 1011, 1100, 1101, 1110 dan 1110 adalah tidak sah (invalid) dalam BCD. Pertukaran nombor ke BCD juga hanya boleh dilakukan melalui sistem perpuluhan. a) 37.0510 ke BCD b) 111010002 ke BCD c) 100100000011.10000101BCD
8
Operasi penambahan dua nombor BCD boleh dilakukan. Setelah menukar setiap digit asas 10 kepada 4 bit BCD, bit-bit ini ditambah seperti penambahan asas 2. Namun, setiap set 4 bit harus diperiksa sama ada mengandungi kombinasi tidak sah ataupun telah melepasi kombinasi 0000. Jika ini berlaku, pembetulan hendaklah dibuat dengan menambah nilai “610” atau “0110BCD” kepada set tersebut. (
")+
a) 72.810 + 35.910
2.5.2
b) 64910 + 15310
Kod Gray Kod Gray menggunakan bit “1” dan “0” tetapi tidak mempunyai pemberat seperti BCD dan tidak boleh digunakan untuk operasi aritmetik. Ciri utama kod Gray ialah cuma satu bit akan bertukar dari satu kod perkataan ke perkataan berikutnya. Bit pada bahagian kanan perkataan akan bertukar dulu. ,
Asas 10 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
- %
Asas 2 (4 bit) 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
Kod Gray
Jadual 2.5 Kod Gray dan Sistem Penduaan
9
Pertukaran kod Gray hanya boleh dibuat melalui sistem penduaan. Teknik menukar kod Gray ke nombor asas 2: a) Samakan bit pertama (MSB) dalam nombor asas dua dengan bit pertama (bit yang paling kiri) dalam kod Gray. b) Bandingkan bit pertama dengan bit ke-2 kod Gray. Jika kedua bit itu sama, maka bit ke-2 asas 2 nilainya “0”. Jika kedua bit itu berlainan, maka bit ke-2 asas 2 nilainya “1”. c) Bandingkan bit ke-2 dengan bit ke-3 kod Gray dan hasilkan bit ke-2 nombor asas dua. d) Teruskan perbandingan sehingga semua bit ditukar ke nombor asas dua. Teknik menukar nombor asas dua ke kod Gray: a) Samakan bit pertama kod Gray dengan bit pertama (MSB) dalam nombor asas 2. b) Bandingkan bit pertama kod Gray dengan bit ke-2 nombor asas dua. Jika kedua bit itu sama, maka bit ke-2 kod Gray nilainya “0”. Jika kedua bit itu berlainan, maka bit ke-2 kod Gray nilainya “1”. c) Bandingkan bit ke-2 kod Gray dengan bit ke-3 nombor asas dua dan hasilkan bit ke-2 kod Gray. d) Teruskan perbandingan sehingga semua bit ditukar ke nombor asas dua.
)
2.5.3
10110112
! 1001111.001Gray
- %
Kod ASCII ASCII, atau nama panjangnya American Standard Code for Information Interchange ialah satu kod yang diterimapakai oleh hampir kesemua komputer dan mesin elektronik. Kebanyakan papan kekunci (keyboard) komputer telah dipiawaikan dengan ASCII. Apabila anda menekan butang aksara, nombor atau kawalan, litar pada pada papan kekunci akan menghasilkan kod ASCII untuk dihantar ke komputer. ASCII mempunyai 128 karakter dan simbol yang diwakili oleh 7 bit nombor asas dua. 32 karakter pertama dalam ASCII mewakili arahan (command) yang digunakan untuk tujuan kawalan. Jadual 2.6 di muka sebelah menunjukkan kod ASCII bagi kesemua 128 karakter.
10