Binary and Number Representation

Computer Science Major ေတြကလာတာမဟုတ္တဲ့သူေတြမွာ အဲ့ဒီအေျခခံမပါလာတာမ်ားပါတယ္၊ ဒါေၾကာင့္က်ေနာ္ notes ေလးလုပ္ထားလိုက္တာျဖစ္ပါတယ္။ ျပသနာကဘာလဲဆိုရင္ URL encode လုပ္တယ္ဆိုတာ ascii ကေန hexadecimal value ေျပာင္းျပီး %20 စသည္ျဖင့္ေျပာင္းတယ္ဆိုတာကအစ ဒီ Computer science ရဲ႕အေျခခံျဖစ္တဲ့ Number Representation ေတြမသိထားရင္က တကူးတကၾကီးေတြျဖစ္ေနတယ္။

Why Binary?

Computer system တစ္ခုဘယ္လိုအလုပ္လုပ္တယ္ဆိုတာသိဖို႕လိုတယ္၊ က်ေနာ္တုိ႕အေနနဲ႕ ဘာေၾကာင့္ computer ဟာ 0 1 ျဖစ္တဲ့ binary ေတြကိုပဲနားလည္သလဲဆိုတာကိုသိဖို႕တကယ္တမ္းကေတာ့ အားလံုး ၁၀ တန္းေတာ့ တက္ဖူးပါတယ္။ Modern Physics သင္ခဲ့ရမွာေပါ့။ က်ေနာ္တို႕ George Boole ရဲ႕ Boolean Logic Operator ေတြကိုသင္ခဲ့ရပါတယ္၊ ေနာက္ထပ္ ဝမ္းသာစရာေကာင္းတာတစ္ခုက Logic Gate ေတြကိုလဲ သင္ခဲ့ရတယ္။ ( ေမ့ေနျပီလို႕ေတာ့ထင္တယ္ ) ျမင္လိုက္ရင္ေတာ့မွတ္မိမွာပါ။ အဲဒါေတြလဲထပ္ျပီး note လုပ္ထားဖို႕ရွိပါတယ္။ ဒီေတာ့ Computer Architecture ကုိသိတယ္ဆိုရင္ က်ေနာ္တုိ႕ဘာေၾကာင့္ဆိုတာရွင္းသြားမွာျဖစ္တယ္။ ဒီေတာ့ ေနာက္ထပ္ထပ္ေလ့လာရမွာေတြအမ်ားၾကီးက်န္ေသးတယ္ဆိုတာသိထားဖို႕ေတာ့လိုပါတယ္။

Decimal

က်ေနာ္တို႕ ပံုမွန္ သံုးေနတဲ့ဆယ္လီစိတ္ကေနပဲစေျပာတာေကာင္းပါတယ္။ ဆယ္လီစိတ္ေတြကိုေတာ့ က်ေနာ္တို႕ သူငယ္တန္းတည္းက စသင္ဖူးတာဆိုေတာ့ ရင္းနွီးျပီးသားျဖစ္ေနတာေပါ့။

102 101 100

တရုတ္ေပသီးေခါက္ဖူးတယ္ဆိုရင္ေတာ့ ပိုရွင္းတယ္

ခုမွာရွိတဲ့ တန္ဖိုးက ၁၀ ခုျပည့္ျပီဆိုတာနဲ႕ ဆယ္ မွာရွိတဲ့တန္ဖိုးကို ၁ ခုေရႊ႕လိုက္တယ္။ ဒီလိုမ်ိဳးသေဘာပဲ။

ဥပမာ 356 ဆိုပါေတာ့ ၊ ခုကိုအရင္တြက္မယ္။ 6 x 100 ၊ ဆယ္က 5 x 101 ၊ ရာက 3 x 102
3 x 102+5 x 101+36 x 100 = 356

Binary

Binary က်ေတာ့ base 10 နဲ႕မဟုတ္ေတာ့ပဲ base 2 ျဖစ္သြားတယ္၊ ျပီးေတာ့ Binary Digits ေတြကို အတိုေကာက္ bits လို႕လဲေဖာ္ျပၾကတယ္။ ဒီလုိုဆို binary ကေရာဘယ္လိုလဲ?
24 23 22 21 20

base က 2 ျဖစ္သြားတာပဲရွိပါတယ္။ ဒီေတာ့ Binary မွာေရာ 300 ကိုဘယ္လိုရေအာင္တြက္မလဲ

28=256+25=32+23=8+22=4 -> 300

ၾကားထဲက မယူခ်င္တဲ့တန္ဖိုးေတြက 0 ျဖစ္ျပီးေတာ့ ယူမယ့္တန္ဖိုးေတြက 1 ေတြအျဖစ္သတ္မွတ္တယ္။ ေအာက္ကလို binary တန္ဖိုးရမယ္။

1 0 0 1 0 1 1 0 0

Computing

လြယ္လြယ္ေလးပဲအရင္စေပါင္းမယ္။ 3+2 ဆိုလြယ္တာေပါ့။

3 = 0011 , 2 = 0010

ေနာက္ဆံုးက စျပီးေပါင္းမယ္၊ 0+1=1 , 1+1=10 ဆိုေတာ့ carray 1 (ျမန္မာလိုေတာ့ ၁ တင္ေပါ့) ယူမယ္၊ ေရွ႕ဆံုးက 0+0=0 ဆုိေတာ့

0101 = 5 ျပန္ရမယ္။

Hexadecimal

hexadecimal ကေတာ့ Base 16 ျဖစ္တယ္။ 0 to F (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F) ထိရွိတယ္။ Hexadecimal ကိုလဲေတာ္ေတာ္မ်ားမ်ားေနရာေတြမွာသံံုးတာကိုေတြ႕ရမွာျဖစ္ပါတယ္။ ASCII ( American Standard Code for Information Interchange ) character ေတြကိုလဲ Hexadecimal value အျဖစ္ေဖာ္ျပသလို ၊ OP code လို႕ေခၚတဲ့ Machine code ေတြဟာလဲ Hexadecimal value ေတြပဲျဖစ္တယ္။

Conclusion

တြက္တာေတြဘာေတြအတြက္ကေတာ့ ပူစရာမလိုပါဘူး ၊ ဒါေတြဘယ္လိုရွိတယ္ဆိုတာသိထားရင္အဆင္ေျပပါတယ္။ Windows မွာပါတဲ့ Caluclator နဲ႕လဲတြက္လိုက္လို႕ရပါတယ္။