Monday, January 9, 2012

CSC159 - Chapter 2 : Numbering System (part 1)

Assalamualaikum

Chapter 2.
2.1 Numbering Representation – Hexadecimal, Octal
2.2 Converting between bases – Hexadecimal, Octal, Binary
2.3 Arithmetic operations (+, -) – Hexadecimal & Octal
2.4 Floating point Format using IEEE – Hex – IEEE

Untuk chapter ni lect aku tak bg slide kot. Atau aku yg tak simpan o-0. Jadi, aku pakai nota cskedah tu punya lah untuk cover entri ni. Link kat sini. Aku nasihat korang scan through skali dulu word tu baru baca entri ni. Sng sikit nk paham.

Basically, korang kena conquer 4 base, hexa, octal, binary dgn decimal. Decimal siapa tak conquer lg sila pergi darjah 1 xP . Sbg budak CS korang akan byk guna hexa, binary dgn decimal. Nak kata wajib tak lah, tapi kalau master 3 base ni mmg takde masalah laa bab2 assembly language dgn digital logic nanti. Part 5 nanti kalau nasib korg pun sama cam kitorg gak, terpaksa amek ITT270 Digital Electronic, yang sepatutnya subjek 'ELEKTIF'. Subjek tu 20-30% benda2 yg korg dh blajar dlm csc159 ; number base, digital logic.

Berbalik kpd topik.
2.1 Numbering Representation

Nombor yang kita selalu pakai 0,1,2,3,.....9,10,11,... infinity, ni sebenarnya base 10, atau decimal. System ni dipanggil base 10 sbb dia pakai 10 digit yang unik {0,1,2,3,4,5,6,7,8,9}. Itulah logiknya. So, kalau kata kita nak pakai system nombor base 4, digit2 yg boleh diterima pakai ialah {0,1,2,3}. Sentiasa start dari kosong {0}.

Boleh jee kalau korang nak pakai base 6 ke base 13 ke nk buat ape2 pun, tapi yang korg kena master dlm topik ni, base 2 (binary), base 8 (octal) dgn base 16 (hexadecimal). Mengikut logik yang sama,

base 2 cuma ada digit {0,1},
base 8 {0,1,2,3,4,5,6,7}
dn base 16 {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}.

Tapi, disbbkan {10,11,12,13,14,15} tu tak unik, maka digantikan dgn huruf {A,B,C,D,E,F} mengikut turutan.
A=10, B=11, C=12, D=13, E=14, F=15.

Kalau korg rujuk nota cskedah tu, tgk la jadual kt page 2 tu yang nampak sebijik macam ni:


Decimal
Binary
Octal
Hexadecimal
0
0000
0
0
1
0001
1
1
2
0010
2
2
3
0011
3
3
4
0100
4
4
5
0101
5
5
6
0110
6
6
7
0111
7
7
8
1000
10
8
9
1001
11
9
10
1010
12
A
11
1011
13
B
12
1100
14
C
13
1101
15
D
14
1110
16
E
15
1111
17
F

 Oh, penting jugak korg kena tau main power. Bukan power rangers, tapi power yg square,cube segala tu. Kalau dlm bahasamelayunya kuasa. Kuasa dua, kuasa tiga, kuasa empat. Sbbnya, nilai tempat untuk semua number base tu kita boleh cari dgn power. Tgk jadual kat page 1 tu dan cuba pahamkan. Aku serabut tgk jadual tu so, aku bg contoh sendiri kat sini.

Kita amek contoh nombor decimal 14. Nombor 14 ni 14 laa kan.
Tapi, kalau baca dari segi power decimal, 14 tu sebenarnya :
1X101 + 4X100 = 10 + 4 = 14

Konsep yang sama untuk semua base.
Binary : 14 = 11102 = 1X23 + 1X22 + 1X21 + 0X20 = 8 + 4 + 2 + 0 = 14
Octal : 14 = 168 = 1X81 + 6X80 = 8 + 6 = 14
Hexadecimal : 14 = E = 14X160 (takleh nk buat apa dah kekeke)

Power sentiasa start dgn kosong {0} dari digit yang paling kanan sekali.


2.2 Converting Between Bases.

Kita ada 4 number system yang nk dipakai, jadi ada banyak cara nak convert antara satu base ke satu base lain.
Decimal > Binary ,, Decimal > Octal ,, Decimal > Hexadecimal

Binary > Octal ,, Binary > Decimal ,, Binary > Hexadecimal

Octal > Binary ,, Octal > Decimal ,, Octal > Hexadecimal

Hexadecimal > Binary ,, Hexadecimal > Octal ,, Hexadecimal > Decimal

Hamek tu, 12 conversion, kikiki. Kalau rajin bljr lah semua. Page 4 sampai page 11. Mmg kena bljr semua pun, sbb kalau keluar soalan korang kena tunjuk working utk dapat markah. Tapi aku suka buat conversion2 yang ni jee, sbb sng. Nak convert apa2 pun aku mesti convert binary dulu.

DECIMAL <-> BINARY

Nothing much here. Probably what u guys have been doing all along. Bahagi nombor decimal tu dgn {2}, baki letak kt sebelah kanan tu (baki sentiasa {0} atau {1}, kalau dpt selain dari tu ada la yg silap tu). Hasil bahagi tu, bahagikan lagi dgn {2}. Ulang sampai dapat hasil kosong. Baki yg sebelah kanan tu, tulis balik mula dgn nombor paling bawah tu tulis paling kiri, nombor paling atas tu tulis paling kanan. Itulah conversion decimal ke binary.
Binary ke decimal pulak, ada dua cara yang aku suka guna. Cara pertama macam dlm gambar atas sebelah kanan tu. Aku tulis power untuk stiap tempat digit (sbb power sentiasa start dgn {0} dari kanan). Lepas tu darab jaa setiap digit {1} dlm binary tu dgn power base {2} macam kt atas tu. dah darab, jumlahkan semua. Cara kedua, aku congak terus nilai setiap tempat digit tu(feveret). Dari kanan, nilai tempat {1,2,4,8,16,31,64,128,256,512,1024,2048.......}(perasan tak nombor2 ni kt mana2?), base 2 senang sbb semua gandaan dua untuk nombor yg seterusnya. Instead of tulis power, aku terus tulis nilai untuk kira. Lepas tu aku cuma jumlahkan semua nilai tu.

OCTAL <-> BINARY

Ini benda yang paling senang. Pisahkan setiap digit octal tu. Lepas tu tukar nilai tiap2 digit tu kpd tiga digit binary. Lepas dh tukar, gabungkan jee nombor binary tu.
Binary ke octal pulak, pisahkan nombor2 binary tu TIGA PER TIGA DARI KANAN. Kalau yang hujung kiri tu tak cukup tiga digit, anggap jaa ada digit {0} kt depan tuu bg cukup tiga. Lagi skali, tukar binary tu jadi decimal secara berasingan. Sudah tukar, kasi gabung, selesai.

Kenapa????
Ingat, base 8 ada nombor {0,1,2,3,4,5,6,7} digit paling tinggi {7}. Dalam binary, digit {7} ditulis sebagai 111. Sbb tu kita pisah tiga per tiga. Sbb semua nilai base 8 boleh diganti dgn mana2 gabungan 3 digit base 2.

HEXADECIMAL <-> BINARY

Yang ini sama jee dgn octal, beza nya yang ni ada 4 digit binary untuk setiap satu digit hexa.

Kenapa????
Ingat, base 16 ada nombor {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F} digit paling tinggi {F}. Dalam binary, digit {F} ditulis sebagai 1111. Sbb tu kita pisah 4by4.  Sbb semua nilai base 16 boleh diganti dgn mana2 gabungan 4 digit base 2.

Nampak tak berapa byk pakai binary kt sini? Semua nk kena binary ooooohhh. Tak masuk lagi truth table, {1} dgn {0} gak. Digital Logic nanti {1}  dgn {0} gak. Semua tu binary lah. Sbbnya, computer atau machine ni paham satu benda jaa. Suis. On/Off, {1}/{0}. Takdak benda lain dah. Core number system utk CS ni binary lah (self-proclaimed xP). Conquer binary, conquer semua base *whistles*

Untuk conversion2 yang lain, aku cuma pakai gabungan 2 conversion kt atas. Contoh nk buat Hexa > Decimal, aku buat Hexa > Binary, Binary > Decimal. Bukan sbb sng nk buat (sng apenye kalau kena buat dua conversion sekali), tapi sebab aku malas nk ingat conversion yg lain. Ingat, matematik, nombor, dan programming, semuanya bergantung kpd REASONING atau LOGIK. Selagi ada jalan logik, betul lah jawapan tu.(tapi bukan logik fallacy lah, xP). Anyway, cara conversion yang macam mana pun, bergantung kpd keselesaan masing2. Aku xleh paksa semua ikut cara aku. Sbb tu ada nota tu, page 4- 11 tu semua conversion. Cari cara yg korang selesa buat.

Ok, nanti sambung part 2. Apa2, mcm biasa, komen kt bawah tu. Kat tepi kanan tu pun ada chatbox, shoutout jee.

Assalamualaikum

No comments:

Post a Comment