Number Systems (ဂဏန်းစနစ်များ)
A1.2.1 - Describe the principal methods of representing data in a computer system: binary, hexadecimal, decimal integers; and conversions between them.
မြန်မာလို: ကွန်ပျူတာ စနစ် တစ်ခုထဲမှာ ဒေတာကို ဖော်ပြတဲ့ အဓိက နည်းလမ်းတွေဖြစ်တဲ့ binary (0 နဲ့ 1 ကိုပဲ သုံးတဲ့ ဂဏန်းစနစ်)၊ hexadecimal (အခြေ 16 ဂဏန်းစနစ်) နဲ့ decimal (အခြေ 10 ဂဏန်းစနစ်) integer (ကိန်းပြည့်) တွေကို၊ ပြီးတော့ အဲဒီ စနစ်တွေကြား ပြောင်းနည်းတွေကို ဖော်ပြ ရှင်းပြနိုင်ရပါမယ်။
အဓိက အယူအဆများ
Binary Number System (Base 2၊ အခြေ 2 ဂဏန်းစနစ်)
Binary ဂဏန်းစနစ်မှာ ဂဏန်း နှစ်လုံးပဲ သုံးပါတယ်: 0 နဲ့ 1 ပါ။ ဂဏန်း တစ်လုံးချင်းကို bit (binary digit၊ binary ဂဏန်း တစ်လုံး) လို့ ခေါ်ပါတယ်။
ကွန်ပျူတာတွေက binary ကို သုံးတာက သူတို့ရဲ့ electronic circuit (လျှပ်စစ် ပတ်လမ်း) တွေမှာ တည်ငြိမ်တဲ့ အခြေအနေ နှစ်မျိုး ရှိလို့ပါ: on နဲ့ off ပါ။ On (ဖွင့်) က high voltage (လျှပ်စစ်ဖိအား မြင့်) ဖြစ်ပြီး 1 နဲ့ ဖော်ပြပါတယ်။ Off (ပိတ်) က low voltage (လျှပ်စစ်ဖိအား နိမ့်) ဖြစ်ပြီး 0 နဲ့ ဖော်ပြပါတယ်။ ကွန်ပျူတာက သိမ်းဆည်းတဲ့၊ လုပ်ဆောင်တဲ့ ဒါမှမဟုတ် ပို့လွှတ်တဲ့ ဒေတာ အားလုံးဟာ နောက်ဆုံးမှာ 0 တွေနဲ့ 1 တွေကို အစဉ်လိုက် တန်းစီထားတာပဲ ဖြစ်ပါတယ်။
Place Value (နေရာ တန်ဖိုး) များ
ကိုယ် သိပြီးသား decimal စနစ်မှာ နေရာ တစ်ခုစီက power of 10 (10 ရဲ့ ထပ်ကိန်း) တစ်ခုကို ကိုယ်စားပြုပါတယ် (ခု၊ ဆယ်၊ ရာ …)။ Binary မှာတော့ နေရာ တစ်ခုစီက power of 2 (2 ရဲ့ ထပ်ကိန်း) တစ်ခုကို ကိုယ်စားပြုပါတယ်:
| နေရာ | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Place value | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
| Power of 2 | 2^7 | 2^6 | 2^5 | 2^4 | 2^3 | 2^2 | 2^1 | 2^0 |
8-bit binary ကိန်း တစ်ခုက 0 (00000000) ကနေ 255 (11111111) အထိ တန်ဖိုးတွေကို ဖော်ပြနိုင်ပါတယ်။ ယေဘုယျအားဖြင့် n-bit register (CPU ထဲက အမြန်ဆုံး သိမ်းဆည်းရာ) ဒါမှမဟုတ် n-bit binary ကိန်း တစ်ခုက မတူတဲ့ တန်ဖိုး 2^n ခု (0 ကနေ 2^n - 1 အထိ) ကို ဖော်ပြနိုင်ပါတယ်။ ဥပမာ 10-bit register တစ်ခုက 0 ကနေ 1023 အထိ မတူတဲ့ တန်ဖိုး 2^10 = 1024 ခုကို သိမ်းနိုင်ပါတယ်။
Binary နဲ့ ရေတွက်ခြင်း
| Decimal | Binary | ရှင်းလင်းချက် |
|---|---|---|
| 0 | 0000 | Bit အားလုံး off |
| 1 | 0001 | 1 |
| 2 | 0010 | 2 |
| 3 | 0011 | 2 + 1 |
| 4 | 0100 | 4 |
| 5 | 0101 | 4 + 1 |
| 6 | 0110 | 4 + 2 |
| 7 | 0111 | 4 + 2 + 1 |
| 8 | 1000 | 8 |
ပုံစံကို သတိထားကြည့်ပါ: ညာဘက်အစွန်ဆုံး bit က ကိန်း တစ်ခု တိုးတိုင်း ပြောင်းပါတယ် (0 ကနေ 1၊ 1 ကနေ 0)၊ နောက် bit က ကိန်း 2 ခုတိုင်း ပြောင်းပါတယ်၊ သူ့နောက်က bit က 4 ခုတိုင်း ပြောင်းပါတယ်၊ ဒီလိုနဲ့ ဆက်သွားပါတယ်။ ဒါက decimal မှာ ခု၊ ဆယ်၊ ရာ ကော်လံတွေ ပြောင်းသွားပုံနဲ့ အတိအကျ တူပါတယ်။
ကြည့်ရန်: ဗီဒီယို အရင်းအမြစ်များ
History of electronic computing and how binary represents data in circuits.
From abacuses to vacuum tubes - how early computers paved the way for binary computing.
Hexadecimal Number System (Base 16၊ အခြေ 16 ဂဏန်းစနစ်)
Hexadecimal (အတိုအားဖြင့် hex) စနစ်မှာ ဂဏန်း 16 လုံး သုံးပါတယ်: တန်ဖိုး 0 ကနေ 9 အထိအတွက် 0-9 ကို၊ ပြီးရင် တန်ဖိုး 10 ကနေ 15 အထိအတွက် A-F ကို သုံးပါတယ်။
| Hex digit (hex ဂဏန်း) | A | B | C | D | E | F |
|---|---|---|---|---|---|---|
| Decimal တန်ဖိုး | 10 | 11 | 12 | 13 | 14 | 15 |
Hexadecimal ဘာကြောင့် ရှိရသလဲ
Binary ကိန်းတွေက ရှည်ပြီး လူတွေ ဖတ်ရ ခက်ပါတယ်။ Hexadecimal က binary ကို တိုတိုနဲ့ ရေးပြတဲ့ နည်း ဖြစ်ပါတယ်: binary ဂဏန်း 4 လုံးက hex ဂဏန်း 1 လုံးနဲ့ အတိအကျ ကိုက်ညီပါတယ်။ ဒါကြောင့် hex က အများကြီး ပိုတိုပြီး ဖတ်တဲ့အခါ မှားနိုင်ခြေ နည်းပါတယ်၊ နောက်ကွယ်က binary ကိုလည်း တိုက်ရိုက် ထင်ဟပ်နေဆဲပါ။ Hex က လူတွေ တန်ဖိုးကို ရေးပုံ ကိုပဲ ပြောင်းတာပါ၊ သိမ်းပုံကို မပြောင်းပါဘူး: ကွန်ပျူတာက bit တွေ အတူတူကိုပဲ သိမ်းထားဆဲ ဖြစ်လို့ ကိန်းတစ်ခုကို hex နဲ့ ရေးတာက memory (မှတ်ဉာဏ်) ကို ဘာမှ မသက်သာစေပါဘူး။
- Binary
11111111= hexFF= decimal 255 - Hex ဂဏန်း နှစ်လုံးက byte (memory ကို တိုင်းတဲ့ ယူနစ်) တစ်ခု (8 bit) ကို ဖော်ပြပါတယ်
Hexadecimal ကို အသုံးများတဲ့ နေရာများ
- Colour code (အရောင် code) များ: web အရောင်တွေမှာ hex ကို သုံးပါတယ်:
#FF0000က အနီ (အနီ 255၊ အစိမ်း 0၊ အပြာ 0)၊#00FF00က အစိမ်း၊#0000FFက အပြာ ဖြစ်ပါတယ် - Memory address (memory ထဲက နေရာ လိပ်စာ) များ: RAM (ပါဝါပိတ်ရင် ပျောက်တဲ့ အဓိက memory) ထဲက နေရာတွေကို hex နဲ့ ပြပါတယ် (ဥပမာ
0x7FFF5A2C) - MAC address (network စက်ရဲ့ hardware လိပ်စာ) များ: network (ကွန်ရက်) hardware (ကွန်ပျူတာရဲ့ ကိုင်တွယ်လို့ရတဲ့ ရုပ်ပိုင်း အစိတ်အပိုင်းများ) ရဲ့ လိပ်စာတွေမှာ hex ကို သုံးပါတယ် (ဥပမာ
00:1A:2B:3C:4D:5E) - Error code (အမှားကို ဖော်ပြတဲ့ code နံပါတ်) များ: system နဲ့ hardware error code တွေကို hex နဲ့ ပြလေ့ ရှိပါတယ်
- Character encoding (စာလုံးနဲ့ သင်္ကေတတွေကို ဂဏန်းတွေအဖြစ် သတ်မှတ်ပေးတဲ့ စနစ်): Unicode (ကမ္ဘာ့ စာလုံး အားလုံးအတွက် code စနစ်) code point (character တစ်လုံးချင်းစီကို ပေးထားတဲ့ နံပါတ်) တွေကို hex နဲ့ ရေးပါတယ် (ဥပမာ U+0041 = ‘A’)
Decimal ကနေ Binary ကို ပြောင်းခြင်း
Decimal ကိန်း တစ်ခုကို binary ပြောင်းဖို့ 2 နဲ့ ထပ်ခါထပ်ခါ စားတဲ့ နည်း (repeated division by 2) ကို သုံးပါ:
- ကိန်းကို 2 နဲ့ စားပါ
- Remainder (အကြွင်း၊ 0 ဒါမှမဟုတ် 1) ကို မှတ်ပါ
- ကိန်းကို quotient (စားလဒ်၊ ကိန်းပြည့် ရလဒ်) နဲ့ အစားထိုးပါ
- Quotient က 0 ဖြစ်တဲ့အထိ ထပ်လုပ်ပါ
- Remainder တွေကို အောက်ကနေ အပေါ်ကို ဖတ်ပါ: အဲဒါက binary ရလဒ်ပါ
ဥပမာ: 157 ကို binary ပြောင်းပါ။
| အဆင့် | စားခြင်း | Quotient | Remainder |
|---|---|---|---|
| 1 | 157 / 2 | 78 | 1 |
| 2 | 78 / 2 | 39 | 0 |
| 3 | 39 / 2 | 19 | 1 |
| 4 | 19 / 2 | 9 | 1 |
| 5 | 9 / 2 | 4 | 1 |
| 6 | 4 / 2 | 2 | 0 |
| 7 | 2 / 2 | 1 | 0 |
| 8 | 1 / 2 | 0 | 1 |
Remainder တွေကို အောက်ကနေ အပေါ် ဖတ်ရင်: 10011101
ပြန်စစ်ခြင်း: 128 + 16 + 8 + 4 + 1 = 157
Binary ကနေ Decimal ကို ပြောင်းခြင်း
Binary ကိန်း တစ်ခုကို decimal ပြောင်းဖို့ bit တစ်ခုချင်းကို သူ့ရဲ့ place value နဲ့ မြှောက်ပြီး ရလဒ်တွေကို ပေါင်းပါ။
ဥပမာ: 10110011 ကို decimal ပြောင်းပါ။
| Bit ရဲ့ နေရာ | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Place value | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
| Bit | 1 | 0 | 1 | 1 | 0 | 0 | 1 | 1 |
| ပေါင်းထည့်တဲ့ တန်ဖိုး | 128 | 0 | 32 | 16 | 0 | 0 | 2 | 1 |
ပေါင်းလဒ်: 128 + 32 + 16 + 2 + 1 = 179
Decimal ကနေ Hexadecimal ကို ပြောင်းခြင်း
Decimal ကိန်း တစ်ခုကို hexadecimal ပြောင်းဖို့ 16 နဲ့ ထပ်ခါထပ်ခါ စားတဲ့ နည်း (repeated division by 16) ကို သုံးပါ:
- ကိန်းကို 16 နဲ့ စားပါ
- Remainder ကို မှတ်ပါ: 10-15 ဖြစ်ရင် A-F ကို ပြောင်းပါ
- ကိန်းကို quotient နဲ့ အစားထိုးပါ
- Quotient က 0 ဖြစ်တဲ့အထိ ထပ်လုပ်ပါ
- Remainder တွေကို အောက်ကနေ အပေါ်ကို ဖတ်ပါ
ဥပမာ: 255 ကို hexadecimal ပြောင်းပါ။
| အဆင့် | စားခြင်း | Quotient | Remainder | Hex digit |
|---|---|---|---|---|
| 1 | 255 / 16 | 15 | 15 | F |
| 2 | 15 / 16 | 0 | 15 | F |
အောက်ကနေ အပေါ် ဖတ်ရင်: FF
ပြန်စစ်ခြင်း: F(15) x 16 + F(15) x 1 = 240 + 15 = 255
Hexadecimal ကနေ Decimal ကို ပြောင်းခြင်း
Hexadecimal ကိန်း တစ်ခုကို decimal ပြောင်းဖို့ hex ဂဏန်း တစ်လုံးချင်းကို သူ့ရဲ့ place value (powers of 16၊ 16 ရဲ့ ထပ်ကိန်းများ) နဲ့ မြှောက်ပြီး ရလဒ်တွေကို ပေါင်းပါ။
ဥပမာ: 2A ကို decimal ပြောင်းပါ။
| နေရာ | 1 | 0 |
|---|---|---|
| Place value | 16 | 1 |
| Hex digit | 2 | A (= 10) |
| ပေါင်းထည့်တဲ့ တန်ဖိုး | 2 x 16 = 32 | 10 x 1 = 10 |
ပေါင်းလဒ်: 32 + 10 = 42
Binary ကနေ Hexadecimal ကို ပြောင်းတဲ့ ဖြတ်လမ်း
16 = 2^4 ဖြစ်လို့ binary ဂဏန်း 4 လုံး က hexadecimal ဂဏန်း 1 လုံး နဲ့ အတိအကျ ကိုက်ညီပါတယ်။ ဒါကြောင့် မြန်မြန် ပြောင်းနိုင်တဲ့ ဖြတ်လမ်း တစ်ခု ရပါတယ်:
Binary ကနေ Hex:
- Binary ကိန်းကို (ညာဘက်ကနေ စပြီး) 4 bit စီ အုပ်စု ခွဲပါ
- 4-bit အုပ်စု တစ်ခုချင်းကို သူနဲ့ ညီမျှတဲ့ hex ဂဏန်းအဖြစ် ပြောင်းပါ
Hex ကနေ Binary:
- Hex ဂဏန်း တစ်လုံးချင်းကို သူနဲ့ ညီမျှတဲ့ 4-bit binary အဖြစ် ပြောင်းပါ
- ရလဒ်တွေကို အစဉ်လိုက် ဆက်ပါ
ကိုးကား ဇယား:
| Binary | Hex | Binary | Hex |
|---|---|---|---|
| 0000 | 0 | 1000 | 8 |
| 0001 | 1 | 1001 | 9 |
| 0010 | 2 | 1010 | A |
| 0011 | 3 | 1011 | B |
| 0100 | 4 | 1100 | C |
| 0101 | 5 | 1101 | D |
| 0110 | 6 | 1110 | E |
| 0111 | 7 | 1111 | F |
ဥပမာ: 10101111 ကို hexadecimal ပြောင်းပါ။
4-bit အုပ်စုတွေ ခွဲပါ: 1010 1111
1010= A1111= F
ရလဒ်: AF
ဥပမာ: C7 ကို binary ပြောင်းပါ။
- C =
1100 - 7 =
0111
ရလဒ်: 11000111
Enrichment (အပို လေ့လာရန်): Storage Units (ဒေတာ ပမာဏကို တိုင်းတဲ့ ယူနစ်များ)
ဒီအပိုင်းက ဂဏန်းစနစ် ပြောင်းတဲ့ ကျွမ်းကျင်မှုထက် ကျော်လွန်ပေမယ့် နောက်ပိုင်း data representation (ကွန်ပျူတာထဲမှာ ဒေတာကို ဖော်ပြ သိမ်းဆည်းပုံ) ခေါင်းစဉ်တွေအတွက် အသုံးဝင်တဲ့ နောက်ခံ အချက်အလက် ဖြစ်ပါတယ်။
ဒေတာကို byte (8 bit) ကို အခြေခံတဲ့ ယူနစ်တွေနဲ့ တိုင်းပါတယ်:
| ယူနစ် | သင်္ကေတ | အရွယ်အစား |
|---|---|---|
| Bit | b | binary ဂဏန်း 1 လုံး (0 ဒါမှမဟုတ် 1) |
| Byte | B | 8 bit |
| Kilobyte | KB | 1,024 byte (2^10) |
| Megabyte | MB | 1,024 KB (2^20 byte) |
| Gigabyte | GB | 1,024 MB (2^30 byte) |
| Terabyte | TB | 1,024 GB (2^40 byte) |
IB (နိုင်ငံတကာ ကျောင်းတွေမှာ သင်တဲ့ IB Computer Science သင်ရိုး) က အများအားဖြင့် decimal prefix (1,000 အဆစီ တိုးတဲ့ ယူနစ် ရှေ့ဆက်၊ 1 kB = 1,000 byte) ထက် binary prefix (1,024 အဆစီ တိုးတဲ့ ယူနစ် ရှေ့ဆက်၊ 1 KB = 1,024 byte) ကို သုံးပါတယ်။ နေ့စဉ် အသုံးမှာတော့ storage (ဒေတာ သိုလှောင်ရာ နေရာ) ထုတ်လုပ်သူတွေက decimal prefix ကို သုံးလေ့ ရှိပါတယ်။ ဒါကြောင့် “500 GB” hard drive (လည်နေတဲ့ သံလိုက်ပြား သုံးတဲ့ သိုလှောင်စက်) တစ်ခုက ကိုယ့်ကွန်ပျူတာမှာ 465 GB လောက်ပဲ ပြတတ်ပါတယ်။
n bit နဲ့ မတူတဲ့ တန်ဖိုး 2^n ခုကို ဖော်ပြနိုင်ပါတယ်။ ဥပမာ:
- 8 bit = မတူတဲ့ တန်ဖိုး 256 ခု (0 ကနေ 255 အထိ)
- 16 bit = မတူတဲ့ တန်ဖိုး 65,536 ခု
- 32 bit = မတူတဲ့ တန်ဖိုး 4.3 ဘီလီယံ ခန့်
Enrichment (အပို လေ့လာရန်): Two’s Complement (အနုတ်ကိန်းတွေကို binary နဲ့ ဖော်ပြတဲ့ စံနည်း)
Two’s complement က IB သင်ရိုး ထက် ကျော်လွန်လို့ IB စာမေးပွဲတွေမှာ မမေးပါဘူး၊ ဒါပေမယ့် ကွန်ပျူတာတွေက negative number (အနုတ်ကိန်း) တွေကို ဘယ်လို ကိုင်တွယ်သလဲ နားလည်ဖို့ အရေးကြီးပါတယ်။
အခုထိ ဆွေးနွေးခဲ့တဲ့ binary ကိန်း အားလုံးက unsigned (အပေါင်း၊ အနုတ် လက္ခဏာ မပါတဲ့) ကိန်းတွေပါ: သုညနဲ့ positive (အပေါင်း) တန်ဖိုးတွေကိုပဲ ဖော်ပြပါတယ်။ ဒါပေမယ့် ကွန်ပျူတာတွေမှာ negative ကိန်းတွေကိုလည်း ဖော်ပြဖို့ လိုပါတယ်။ စံ နည်းလမ်းက two’s complement ဖြစ်ပါတယ်။
Two’s Complement အလုပ်လုပ်ပုံ
Two’s complement မှာ most significant bit (တန်ဖိုး အကြီးဆုံး bit၊ ဘယ်ဘက်အစွန်ဆုံး bit) က sign bit (အပေါင်း၊ အနုတ် လက္ခဏာကို ပြတဲ့ bit) အဖြစ် အလုပ်လုပ်ပါတယ်:
- Sign bit မှာ 0 = positive number (အပေါင်းကိန်း)
- Sign bit မှာ 1 = negative number
Positive Number ကို သူ့ရဲ့ Negative အဖြစ် ပြောင်းခြင်း (Two’s Complement)
- Positive number ကို binary နဲ့ ရေးပါ
- Bit အားလုံးကို ပြောင်းပြန်လှန်ပါ (0 က 1 ဖြစ်၊ 1 က 0 ဖြစ်)။ ဒါကို one’s complement (bit တွေကို ပြောင်းပြန်လှန်ထားတဲ့ ပုံစံ) လို့ ခေါ်ပါတယ်
- ရလဒ်ကို 1 ပေါင်းပါ
ဥပမာ: -42 ကို 8-bit two’s complement နဲ့ ဖော်ပြပါ။
| အဆင့် | လုပ်ဆောင်ချက် | ရလဒ် |
|---|---|---|
| 1. 42 ကို binary နဲ့ ရေးပါ | 42 = 32 + 8 + 2 | 00101010 |
| 2. Bit အားလုံးကို ပြောင်းပြန်လှန်ပါ | Bit တစ်ခုချင်းကို ပြောင်းပြန်လှန်ပါ | 11010101 |
| 3. 1 ပေါင်းပါ | 11010101 + 1 | 11010110 |
ဒါကြောင့် 8-bit two’s complement မှာ -42 က 11010110 ဖြစ်ပါတယ်။
Two’s Complement ရဲ့ Range (ဖော်ပြနိုင်တဲ့ တန်ဖိုး အပိုင်းအခြား)
Two’s complement မှာ n bit ရှိရင်:
- အငယ်ဆုံး တန်ဖိုး: -2^(n-1)
- အကြီးဆုံး တန်ဖိုး: 2^(n-1) - 1
| Bit | အငယ်ဆုံး | အကြီးဆုံး |
|---|---|---|
| 8 | -128 | +127 |
| 16 | -32,768 | +32,767 |
| 32 | -2,147,483,648 | +2,147,483,647 |
သုည (0) က positive ဘက်က နေရာ တစ်ခုကို ယူထားလို့ range က နှစ်ဘက် မညီပါဘူး။ 8-bit two’s complement မှာ negative တန်ဖိုး 128 ခု (-128 ကနေ -1 အထိ)၊ သုည နဲ့ positive တန်ဖိုး 127 ခု (1 ကနေ 127 အထိ) ရှိပါတယ်။ စုစုပေါင်း တန်ဖိုး 256 ခု ဖြစ်ပြီး ဒါက 2^8 နဲ့ အတိအကျ ညီပါတယ်။
How binary encodes numbers, text (ASCII/Unicode), and other data types.
ကိုယ်တိုင် စမ်းကြည့်ပါ: binary နဲ့ logic လေ့ကျင့်ကွင်း မှာ bit တွေကို တကယ် ပြောင်းကြည့်လို့ရတယ်၊ ကိုယ့်ရဲ့ အကောင်းဆုံး ဆက်တိုက် မှန်မှု မှတ်တမ်းကို ကျော်နိုင်အောင် ဂဏန်းစနစ် ပြောင်းတာကို အချိန်နဲ့ အပြိုင် လေ့ကျင့်လို့ရတယ်၊ truth table (input အားလုံးနဲ့ output ကို ပြတဲ့ ဇယား) တွေကို အလုပ်လုပ်နေတဲ့ circuit တစ်ခုနဲ့ တိုက်စစ်လို့ရပါတယ်။
ဖြေရှင်းပြထားတဲ့ ဥပမာများ
ဥပမာ 1: Decimal ကနေ Binary (စားတဲ့ နည်း)
ပြဿနာ: Decimal 157 ကို binary ပြောင်းပါ။
အဆင့် 1: 2 နဲ့ ထပ်ခါထပ်ခါ စားတဲ့ ဇယားကို ပြင်ဆင်ပါ။
| စားခြင်း | Quotient | Remainder |
|---|---|---|
| 157 / 2 | 78 | 1 |
| 78 / 2 | 39 | 0 |
| 39 / 2 | 19 | 1 |
| 19 / 2 | 9 | 1 |
| 9 / 2 | 4 | 1 |
| 4 / 2 | 2 | 0 |
| 2 / 2 | 1 | 0 |
| 1 / 2 | 0 | 1 |
အဆင့် 2: Remainder တွေကို အောက်ကနေ အပေါ်ကို ဖတ်ပါ: 10011101
အဆင့် 3: Decimal ကို ပြန်ပြောင်းပြီး စစ်ပါ: 128 + 16 + 8 + 4 + 1 = 157
ဥပမာ 2: Binary ကနေ Decimal (Place Value နည်း)
ပြဿနာ: Binary 10110011 ကို decimal ပြောင်းပါ။
အဆင့် 1: Bit နေရာ တစ်ခုချင်းအတွက် place value တွေကို ချရေးပါ။
| Place value | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
|---|---|---|---|---|---|---|---|---|
| Bit | 1 | 0 | 1 | 1 | 0 | 0 | 1 | 1 |
အဆင့် 2: ဘယ် place value တွေမှာ 1 ရှိလဲ ရှာပါ: 128, 32, 16, 2, 1
အဆင့် 3: ပေါင်းပါ: 128 + 32 + 16 + 2 + 1 = 179
ဥပမာ 3: Two’s Complement ကိန်းရဲ့ တန်ဖိုးကို ပြန်ရှာခြင်း (အပို လေ့လာရန်)
ပြဿနာ: 8-bit two’s complement binary ကိန်း 11010110 က negative number တစ်ခုကို ဖော်ပြပါတယ်။ သူ့ရဲ့ decimal တန်ဖိုးကို ရှာပါ။
အဆင့် 1: Sign bit ကို စစ်ပါ။ ဘယ်ဘက်အစွန်ဆုံး bit က 1 ဖြစ်လို့ ဒါက negative number ပါ။
အဆင့် 2: Magnitude (လက္ခဏာ မပါတဲ့ ကိန်းရဲ့ အရွယ်အစား) ကို ရှာဖို့ two’s complement ကို ပြောင်းပြန် အသုံးချပါ: bit အားလုံးကို ပြောင်းပြန်လှန်ပြီး 1 ပေါင်းပါ။
| လုပ်ဆောင်ချက် | ရလဒ် |
|---|---|
| မူလ ကိန်း | 11010110 |
| Bit အားလုံးကို ပြောင်းပြန်လှန် | 00101001 |
| 1 ပေါင်း | 00101010 |
အဆင့် 3: 00101010 ကို decimal ပြောင်းပါ: 32 + 8 + 2 = 42
အဆင့် 4: အနုတ် လက္ခဏာ ထည့်ပါ: အဖြေက -42 ပါ။
Quick Check (အမြန် စစ်ဆေးမေးခွန်း)
Q1. Binary 1101 ရဲ့ decimal တန်ဖိုးက ဘာလဲ။
Q2. Decimal 25 ကို binary နဲ့ ဘယ်လို ဖော်ပြသလဲ။
Q3. ကွန်ပျူတာ နယ်ပယ်မှာ hexadecimal ကို ဘာကြောင့် အသုံးများသလဲ။
Q4. Binary 1111 0000 နဲ့ ညီမျှတဲ့ hexadecimal က ဘာလဲ။
Q5. 8-bit two's complement မှာ ဖော်ပြနိုင်တဲ့ တန်ဖိုး range က ဘာလဲ။
တစ်ဆင့်ချင်း ပြောင်းကြည့်ပါ
Decimal ကိန်း 203 ကို 2 နဲ့ ထပ်ခါထပ်ခါ စားတဲ့ နည်းနဲ့ binary ပြောင်းပါ။ အဆင့်တိုင်းမှာ လက်ရှိ ကိန်းကို 2 နဲ့ စားပြီး quotient နဲ့ remainder ကို မှတ်ပါ၊ ပြီးရင် quotient နဲ့ ဆက်လုပ်ပါ။
နောက်ဆုံး binary ကိန်းကို ရဖို့ remainder တွေကို အောက်ကနေ အပေါ်ကို ဖတ်ပါ။
| အဆင့် | ကိန်း / 2 | Quotient | Remainder |
|---|---|---|---|
| 1 | 203 / 2 | ||
| 2 | 101 / 2 | ||
| 3 | 50 / 2 | ||
| 4 | 25 / 2 | ||
| 5 | 12 / 2 | ||
| 6 | 6 / 2 | ||
| 7 | 3 / 2 | ||
| 8 | 1 / 2 |
Spot the Error (အမှား ရှာခြင်း)
ကျောင်းသား တစ်ယောက်က decimal 156 ကို hexadecimal ပြောင်းပါတယ်။ သူ ရေးခဲ့တဲ့ အဆင့်တွေက အောက်ပါအတိုင်းပါ။ အမှားပါတဲ့ line ကို ရွေးပါ၊ ပြီးရင် ပြင်နည်းကို ရွေးပါ။
Line တွေထဲမှာ remainder က အကြွင်း၊ “12 in hex is C” က “12 ကို hex နဲ့ ရေးရင် C”၊ Result က ရလဒ် လို့ ဆိုလိုပါတယ်။
ဒီ line အတွက် မှန်ကန်တဲ့ ပြင်နည်းကို ရွေးပါ:
Fill in the Blanks (ကွက်လပ် ဖြည့်ခြင်း)
ဂဏန်းစနစ်တွေနဲ့ ပတ်သက်တဲ့ အောက်ပါ စာကြောင်းတွေကို ဖြည့်ပါ။ စာကြောင်းတွေက English နဲ့ ဖြစ်ပြီး အစဉ်လိုက် ဒီလို ဆိုလိုပါတယ်: Binary က base (အခြေ) ...... ဂဏန်းစနစ် ဖြစ်တယ်။ Hexadecimal က ဂဏန်း 0-9 နဲ့ စာလုံး ...... ကနေ ...... အထိ သုံးတယ်။ Decimal ကို binary ပြောင်းဖို့ ...... နဲ့ ထပ်ခါထပ်ခါ စားတယ်။ Binary ဂဏန်း ...... လုံး တစ်အုပ်စုက hexadecimal ဂဏန်း တစ်လုံးနဲ့ ကိုက်ညီတယ်။ 1 byte = ...... bit ဖြစ်တယ်။ (Number System Basics က ဂဏန်းစနစ် အခြေခံများ၊ Conversions က ပြောင်းခြင်းများ၊ Storage က ဒေတာ သိမ်းဆည်းခြင်း လို့ ဆိုလိုပါတယ်။) စာလုံး ကွက်လပ်တွေကို English စာလုံးနဲ့ ရိုက်ပါ။
Number System Basics
====================
Binary is a base number system.
Hexadecimal uses digits 0-9 and letters to .
Conversions
===========
To convert decimal to binary, repeatedly divide by .
Each group of binary digits maps to one hexadecimal digit.
Storage
=======
1 byte = bits. Predict the Output (output ကို ကြိုခန့်မှန်းခြင်း)
Decimal ကိန်း 75 ကို hexadecimal ပြောင်းပါ။ အောက်က အဆင့်တွေမှာ remainder က အကြွင်း၊ in hexadecimal က “hexadecimal နဲ့ ရေးရင်” လို့ ဆိုလိုပါတယ်။
75 / 16 = 4 remainder 11
11 in hexadecimal = BHexadecimal ရလဒ်က ဘာလဲ။ Hex ဂဏန်းတွေကို English စာလုံးနဲ့ ရိုက်ပါ။
Practice Exercises (လေ့ကျင့်ခန်းများ)
Core (အခြေခံ အဆင့်)
- Decimal ကနေ Binary။ အောက်ပါ decimal ကိန်း တစ်ခုချင်းကို ထပ်ခါထပ်ခါ စားတဲ့ နည်းနဲ့ binary ပြောင်းပါ:
- 42
- 100
- 200
- 13
- 255
- Binary ကနေ Decimal။ အောက်ပါ binary ကိန်း တစ်ခုချင်းကို place value နည်းနဲ့ decimal ပြောင်းပါ:
1010111001000000111111111
- Hex နဲ့ Binary။ 4 bit စီ အုပ်စုခွဲတဲ့ ဖြတ်လမ်းနည်းကို သုံးပြီး အောက်ပါအတိုင်း ပြောင်းပါ:
- Hexadecimal
A3ကို binary ပြောင်းပါ - Binary
1100 0101ကို hexadecimal ပြောင်းပါ
- Hexadecimal
Extension (တိုးချဲ့ အဆင့်)
-
Two’s Complement။ -25 ကို 8-bit two’s complement နဲ့ ဖော်ပြပါ။ အဆင့် သုံးဆင့်လုံး (positive ကို ရေး၊ bit တွေကို ပြောင်းပြန်လှန်၊ 1 ပေါင်း) ကို ပြပြီး ကိုယ့်အဖြေကို ပြန်စစ်ပါ။
-
Hexadecimal ဘာကြောင့်လဲ။ Memory address တွေကို ပြတဲ့အခါ binary ထက် hexadecimal ကို ဘာကြောင့် ပိုသုံးကြလဲဆိုတာ Explain (ရှင်းပြပါ) လုပ်ပါ။ Readability (ဖတ်ရလွယ်ခြင်း)၊ မှားနိုင်ခြေ နဲ့ hex ဂဏန်းတွေနဲ့ byte တွေကြား ဆက်စပ်ပုံကို ထည့်စဉ်းစားပါ။
-
Address Space (ကွန်ပျူတာ သုံးနိုင်တဲ့ memory address အားလုံး)။ ကွန်ပျူတာ တစ်လုံးက 16-bit memory address တွေကို သုံးပါတယ်။ မတူတဲ့ memory address ဘယ်နှစ်ခု ရှိနိုင်သလဲ။ အဖြေကို decimal နဲ့ရော hexadecimal နဲ့ပါ ဖော်ပြပါ။
Challenge (စိန်ခေါ်မှု အဆင့်)
- Storage တွက်ချက်ခြင်း။ အောက်ပါ တစ်ခုချင်းကို သိမ်းဖို့ byte ဘယ်နှစ်ခု လိုမလဲ Calculate (တွက်တဲ့ အဆင့်တွေကို ပြပြီး ဂဏန်း အဖြေ ရှာပါ) လုပ်ပါ။ Storage လိုအပ်ချက် သုံးခုကို Compare (နှစ်ခုလုံးကို ထည့်ပြီး တူတာနဲ့ ကွာတာကို ဖော်ပြပါ) လုပ်ပြီး အကြီးဆုံး တစ်ခုကို ပိုသင့်တော်တဲ့ ယူနစ် (KB, MB ဒါမှမဟုတ် GB) နဲ့ ဖော်ပြပါ:
- ASCII (character 128 လုံးအတွက် code စနစ်) character (စာလုံး ဒါမှမဟုတ် သင်္ကေတ) 1,000 လုံး (character တစ်လုံးကို 1 byte)
- 24-bit colour depth (pixel တစ်ခုရဲ့ အရောင်အတွက် bit အရေအတွက်) ရှိတဲ့ 1920 x 1080 ပုံ တစ်ပုံ (pixel (ပုံထဲက အစက် တစ်စက်) တစ်ခုကို 3 byte)
- CD အရည်အသွေး အသံ 1 မိနစ် (sampling rate (တစ်စက္ကန့်မှာ အသံ နမူနာ ယူတဲ့ အကြိမ်ရေ) 44,100 Hz၊ 16-bit depth၊ stereo = channel 2 ခု)
ဆက်စပ် ခေါင်းစဉ်များ
- အရင် လေ့လာထားရမယ့် ခေါင်းစဉ်များ: မရှိပါ (အခြေခံ ခေါင်းစဉ်ပါ)
- ဆက်စပ် ခေါင်းစဉ်: Logic Gates (input bit တွေကနေ output bit တစ်ခု ထုတ်ပေးတဲ့ circuit အစိတ်အပိုင်းများ): gate တွေက binary signal (0 နဲ့ 1 ကို ကိုယ်စားပြုတဲ့ လျှပ်စစ် အချက်ပြမှု) တွေကို လုပ်ဆောင်ပါတယ်
- ဆက်စပ် ခေါင်းစဉ်: Primary Memory (ကွန်ပျူတာရဲ့ အဓိက memory): memory က binary ဒေတာကို သိမ်းထားပါတယ်
- နောက်ထပ် လေ့လာမယ့် ခေါင်းစဉ်: Representing Data (ဒေတာကို binary နဲ့ ဖော်ပြခြင်း): data type (ဒေတာ အမျိုးအစား) အားလုံးကို encode (သတ်မှတ်ထားတဲ့ code ပုံစံအဖြစ် ပြောင်း) လုပ်ဖို့ binary ကို အသုံးချပါတယ်