Code (BCD, ASCII, Unicode)
কোড
কোড (Code)
ভূমিকা — 'A' চাপলে কম্পিউটার কী দেখে?
Keyboard-এ 'A' চাপো। Screen-এ 'A' দেখা যায়। কিন্তু মাঝখানে কম্পিউটারের ভেতরে 'A' বলে কিছু নেই — আছে শুধু 01000001। এই যে অক্ষরকে বাইনারি সংখ্যায় রূপান্তরের নিয়ম, এটাই কোড (Code)।
💡 মজার তথ্য: তোমার নাম বাংলায় লিখতে পারছ যে ফোনে, সেটা সম্ভব হয়েছে ১৯৯১ সালে Unicode আবিষ্কারের পর। তার আগে কম্পিউটার শুধু ইংরেজি বুঝত!
Code কেন দরকার?
কম্পিউটার শুধু 0 আর 1 বোঝে। কিন্তু আমরা ব্যবহার করি:
- অক্ষর (A-Z, a-z, ক-ঁ)
- অঙ্ক (0-9)
- প্রতীক (+, -, @, #)
সমস্যা: 0/1 দিয়ে এত কিছু প্রকাশ করবে কীভাবে? সমাধান: প্রতিটি অক্ষর/অঙ্ক/প্রতীকের জন্য একটি নির্দিষ্ট বাইনারি সংখ্যা ঠিক করে দেওয়া — সবাই একই নিয়ম মানলে যেকোনো কম্পিউটার যেকোনো লেখা বুঝবে।
Code = অক্ষর, অঙ্ক ও প্রতীককে বাইনারিতে প্রকাশের সর্বজনীন নিয়ম।
চিত্রের মাধ্যমে বোঝো
Keyboard-এ 'A' চাপলে:
'A' ──► Encoder ──► 01000001 (ASCII) ──► CPU/Memory
│
'A' ◄── Decoder ◄──────────┘ (Screen-এ দেখানোর সময়)
Module 1: BCD Code (Binary Coded Decimal)
📌 সংজ্ঞা: দশমিক সংখ্যার প্রতিটি অঙ্ককে আলাদাভাবে 4-bit বাইনারি দিয়ে প্রকাশ করার কোড।
গঠন: 4 bit → ২৪ = 16টি সম্ভাবনা, কিন্তু ব্যবহার হয় মাত্র 10টি (0000–1001)।
| দশমিক অঙ্ক | BCD (8421) |
|---|---|
| 0 | 0000 |
| 5 | 0101 |
| 9 | 1001 |
উদাহরণ: (25)₁₀ এর BCD:
- 2 → 0010
- 5 → 0101
- BCD = 0010 0101
⚠️ গুরুত্বপূর্ণ পার্থক্য: (25)₁₀ এর বাইনারি = 11001, কিন্তু BCD = 00100101। BCD ≠ Binary! বাইনারি পুরো সংখ্যাকে রূপান্তর করে, BCD প্রতিটি অঙ্ককে আলাদাভাবে।
BCD-র প্রকার: 8421 (সবচেয়ে প্রচলিত — বিটগুলোর স্থানীয় মান 8, 4, 2, 1), 2421, Excess-3, Gray code।
ব্যবহার: Digital clock, calculator, digital meter — যেখানে দশমিক অঙ্ক সরাসরি প্রদর্শন করতে হয়।
অবৈধ BCD: 1010 থেকে 1111 (দশমিক 10–15) — BCD-তে এগুলো ব্যবহার হয় না।
Module 2: Alphanumeric Code কী?
📌 সংজ্ঞা: যে কোডে অক্ষর (Alphabet) + অঙ্ক (Number) + বিশেষ প্রতীক — সব প্রকাশ করা যায়, তাকে Alphanumeric Code বলে।
তিনটি প্রধান Alphanumeric Code: ASCII, EBCDIC, Unicode
Module 3: ASCII (American Standard Code for Information Interchange)
📌 সংজ্ঞা: ৭-বিটের সবচেয়ে জনপ্রিয় Alphanumeric কোড, ১৯৬৩ সালে প্রণীত।
- ASCII-7: 7 bit → ২⁷ = 128টি চিহ্ন
- ASCII-8 (Extended): 8 bit → ২⁸ = 256টি চিহ্ন (parity bit বা extra bit যোগ করে)
মুখস্থ রাখার মতো মান:
| অক্ষর | দশমিক | বাইনারি |
|---|---|---|
| 0 | 48 | 0110000 |
| 9 | 57 | 0111001 |
| A | 65 | 1000001 |
| Z | 90 | 1011010 |
| a | 97 | 1100001 |
| z | 122 | 1111010 |
Pattern লক্ষ করো: 'a' = 'A' + 32। বড় হাতের থেকে ছোট হাতের অক্ষর ৩২ বেশি — মাঝের মাত্র একটি bit-এর পার্থক্য (bit-5)।
সীমাবদ্ধতা: 128/256টি চিহ্ন দিয়ে শুধু ইংরেজি চলে; বাংলা, আরবি, চীনা — অসম্ভব। এ সমস্যাই Unicode-এর জন্ম দেয়।
Module 4: EBCDIC (Extended Binary Coded Decimal Interchange Code)
📌 সংজ্ঞা: IBM-এর তৈরি ৮-বিট কোড, ২⁸ = 256টি চিহ্ন।
- BCD কোডের সম্প্রসারিত রূপ
- মূলত IBM Mainframe কম্পিউটারে ব্যবহৃত হতো
- এখন প্রায় অপ্রচলিত — ASCII/Unicode-ই মানদণ্ড
Module 5: Unicode — সব ভাষার এক কোড
📌 সংজ্ঞা: পৃথিবীর সব ভাষার সব চিহ্ন প্রকাশের জন্য তৈরি আন্তর্জাতিক কোড (১৯৯১, Unicode Consortium — Xerox ও Apple-এর যৌথ উদ্যোগ)।
- 16-bit ভিত্তি → ২১⁶ = 65,536 চিহ্ন (বর্তমান সংস্করণে ১১ লক্ষাধিক code point)
- প্রথম 128টি চিহ্ন ASCII-র সাথে সম্পূর্ণ সামঞ্জস্যপূর্ণ (backward compatible)
- বাংলা ভাষার পরিসর: U+0980 থেকে U+09FF
- Encoding রূপ: UTF-8 (ওয়েবে সবচেয়ে জনপ্রিয়), UTF-16, UTF-32
কেন বিপ্লব? একটাই কোডে বাংলা + ইংরেজি + আরবি + ইমোজি — কোনো conflict নেই। আজকের ফেসবুক পোস্টে বাংলা লিখতে পারা = Unicode-এর অবদান।
বাস্তব জীবনের সাথে মিল
🏠 অ্যানালজি: কোড হলো ডাকবিভাগের পোস্টকোডের মতো। "ঢাকা-১২০৫" লিখলে পৃথিবীর যেকোনো পোস্ট অফিস বোঝে জায়গাটা কোথায় — কারণ সবাই একই নিয়ম মানে। তেমনি 65 মানেই 'A' — পৃথিবীর সব কম্পিউটারে।
সব কোডের তুলনা সারণি
| কোড | বিট | চিহ্ন সংখ্যা | ব্যবহার |
|---|---|---|---|
| BCD | 4 | 10 (শুধু অঙ্ক) | Calculator, digital clock |
| ASCII-7 | 7 | 128 | ইংরেজি টেক্সট |
| ASCII-8 | 8 | 256 | Extended ইংরেজি |
| EBCDIC | 8 | 256 | IBM Mainframe |
| Unicode | 16+ | 65,536+ | সব ভাষা (বাংলাসহ) |
🧠 মূল শিক্ষা
- Code = অক্ষর/অঙ্ক/প্রতীক ↔ বাইনারি রূপান্তরের সর্বজনীন নিয়ম
- BCD প্রতিটি অঙ্ককে আলাদাভাবে 4-bit-এ রূপান্তর করে — পুরো সংখ্যাকে নয়
- ASCII 7-bit (128 চিহ্ন), Extended ASCII 8-bit (256 চিহ্ন)
- A = 65, a = 97, 0 = 48 — এই তিনটি মান মনে রাখো
- Unicode 16-bit — সব ভাষা, বাংলার জন্য U+0980–U+09FF
🔁 নিজে পরীক্ষা করো
- (47)₁₀-এর BCD কত? → 4=0100, 7=0111 → 01000111
- 'B'-এর ASCII মান কত? → A=65, তাই B = 66
- (12)₁₀-এর Binary আর BCD কি একই? → Binary=1100, BCD=00010010 → ভিন্ন!
📝 HSC পরীক্ষার প্রস্তুতি
পরীক্ষায় যা আসতে পারে:
- BCD ও Binary-র পার্থক্য (সংখ্যাসহ) — খুবই common
- ASCII ও Unicode-এর পার্থক্য
- Unicode-এ কতটি চিহ্ন প্রকাশ সম্ভব (২¹⁶)
- বাংলা ভাষা প্রকাশে কোন কোড ব্যবহৃত হয়
সাধারণ ভুল:
- ❌ (25)₁₀-এর BCD হিসেবে 11001 লেখা (এটা Binary!)
- ❌ ASCII-কে 8-bit বলা (মূল ASCII 7-bit; Extended-টা 8-bit)
- ❌ Unicode-কে শুধু "বাংলা কোড" ভাবা (এটা সব ভাষার)
✅ সারাংশ
- BCD: দশমিক অঙ্ক → 4-bit বাইনারি (অঙ্ক ধরে ধরে)
- ASCII: ইংরেজি অক্ষর/প্রতীকের 7-bit কোড (A=65)
- EBCDIC: IBM-এর 8-bit কোড
- Unicode: সব ভাষার 16-bit আন্তর্জাতিক কোড — বাংলা লেখার ভিত্তি
🎯 অনুশীলন প্রশ্ন
- (69)₁₀-কে BCD-তে প্রকাশ করো।
- "ICT" শব্দটির ASCII (দশমিক) মানগুলো লেখো (I=73)।
- BCD ও Binary-র মধ্যে ৩টি পার্থক্য লেখো।
- Unicode উদ্ভাবনের প্রেক্ষাপট ব্যাখ্যা করো।
- ASCII দিয়ে বাংলা লেখা সম্ভব নয় কেন — যুক্তিসহ ব্যাখ্যা করো।