কম্পিউটার কোড (Computer Code) - সম্পূর্ণ অধ্যায়
HSC ICT (অধ্যায় ৩.১) - সংখ্যা পদ্ধতি ও ডিজিটাল ডিভাইস
প্রস্তুতকারক: অনিক দত্ত | ইন্সটিটিউশন: ICT with Anik
প্রিয় শিক্ষার্থীরা, HSC ICT ৩য় অধ্যায়ের অত্যন্ত গুরুত্বপূর্ণ একটি টপিক হলো 'কম্পিউটার কোড'। বোর্ড পরীক্ষা এবং অ্যাডমিশন টেস্টে এখান থেকে প্রশ্ন আসবেই। আজকের এই আর্টিকেলে আমরা কোড কী, জোন বিট, প্যারিটি বিট, BCD, ASCII থেকে শুরু করে ইউনিকোড পর্যন্ত সব কিছু একদম সহজ ভাষায় এবং বিস্তারিতভাবে জানব।
📑 সূচিপত্র
- কোড কী?
- কোডের প্রকারভেদ
- নিউমেরিক কোড (BCD ও Excess-3)
- আলফানিউমেরিক কোড (ASCII, EBCDIC, Unicode)
- জোন বিট, সংখ্যাসূচক বিট ও প্যারিটি বিট বিস্তারিত
- অন্যান্য কোড (Gray, Morse)
- কোড রূপান্তর পদ্ধতি
- বিভিন্ন কোডের তুলনামূলক চার্ট
- জ্ঞানমূলক ও বহুনির্বাচনী প্রশ্ন (MCQ)
- সংক্ষিপ্তসার ও মনে রাখার টেকনিক
- সাধারণ জিজ্ঞাসা (FAQ)
১. কোড কী?
কম্পিউটার শুধু বাইনারি সংখ্যা (0 এবং 1) বুঝতে পারে। তাই কম্পিউটারের বিভিন্ন উপাদান—যেমন বর্ণ, সংখ্যা, চিহ্ন বা নির্দেশনা—প্রসেসরের (CPU) কাছে বোঝানোর জন্য বাইনারি সংখ্যা ব্যবহার করে যে বিশেষ সংকেত তৈরি করা হয়, তাকে কোড বলে।
সহজ ভাষায়: মানুষ ও কম্পিউটারের মধ্যে যোগাযোগের মাধ্যমই হলো কোড। কম্পিউটার সিস্টেমে ব্যবহৃত প্রতিটি বর্ণ, সংখ্যা বা বিশেষ চিহ্নকে পৃথকভাবে শনাক্ত করার জন্য বাইনারি বিট 0 বা 1 ব্যবহার করে যে অদ্বিতীয় সংকেত তৈরি করা হয় তাকে কোড বলে। এনকোডার (Encoder) নামক লজিক সার্কিট এই কোডিং এর কাজ করে থাকে।
💡 মনে রাখবেন: কোডের মাধ্যমে প্রতিটি অক্ষর, সংখ্যা বা চিহ্নের জন্য একটি অনন্য বাইনারি প্যাটার্ন নির্ধারণ করা হয়।
২. কোডের প্রকারভেদ
কোড প্রধানত দুই প্রকার:
| প্রকার | বৈশিষ্ট্য | উদাহরণ |
|---|---|---|
| নিউমেরিক কোড (Numeric Code) | শুধুমাত্র সংখ্যা (0-9) প্রকাশ করে। গাণিতিক কাজে বেশি ব্যবহৃত হয়। | BCD, Excess-3, অক্টাল, হেক্সাডেসিমেল কোড |
| আলফানিউমেরিক কোড (Alphanumeric Code) | বর্ণ (A-Z, a-z), সংখ্যা (0-9), গাণিতিক চিহ্ন (+ - × ÷), বিশেষ চিহ্ন (@ # $ % &) সবকিছু প্রকাশ করে। | ASCII, EBCDIC, ইউনিকোড |
৩. নিউমেরিক কোডের বিস্তারিত
৩.১ BCD কোড (Binary Coded Decimal)
পূর্ণরূপ: Binary Coded Decimal
সংজ্ঞা: দশমিক সংখ্যা পদ্ধতির প্রতিটি অঙ্ককে (0-9) আলাদাভাবে সমতুল্য ৪ বিটের বাইনারি সংখ্যায় প্রকাশ করার জন্য যে কোড ব্যবহৃত হয়, তাকে BCD কোড বলে। একে ৮৪২১ কোড-ও বলা হয়, কারণ এই কোডের বিটগুলোর ওজন যথাক্রমে ৮, ৪, ২ ও ১।
বৈশিষ্ট্য ও অতিরিক্ত তথ্য:
- এটি একটি ওয়েটেড কোড (Weighted Code)। তবে ৮৪২১ ছাড়াও 7421, 5421 এবং 2421 নামে আরও কিছু BCD কোড রয়েছে।
- প্রতিটি দশমিক অঙ্কের জন্য ৪টি বাইনারি বিট ব্যবহার করা হয়।
- ৪ বিটে সর্বমোট ১৬টি (2⁴) কম্বিনেশন সম্ভব, কিন্তু এর মধ্যে কেবল প্রথম ১০টি (0000 থেকে 1001) বৈধ।
- বাকি ৬টি কম্বিনেশন (1010, 1011, 1100, 1101, 1110, 1111) BCD-তে অবৈধ বা ব্যবহার অনুপযুক্ত।
- BCD 8421 কোড বিশেষভাবে উল্লেখযোগ্য এবং বহুল ব্যবহৃত কোড। তাই একে NBCD (Natural Binary Coded Decimal) কোডও বলা হয়।
ব্যবহার ক্ষেত্র: ক্যালকুলেটর, ডিজিটাল ঘড়ি, ডিজিটাল ভোল্টমিটার, থার্মোমিটার, ৭-সেগমেন্ট ডিসপ্লে, পুরোনো IBM সুপার কম্পিউটার (IBM System/360), কম্পিউটারের BIOS-এ তারিখ সংরক্ষণে।
৫ → ০১০১
৯ → ১০০১
৬ → ০১১০
সুতরাং (৫৯৬)₁₀ = (০১০১ ১০০১ ০১১০)BCD
৩.২ Excess-3 কোড (বা XS-3 কোড)
সংজ্ঞা: এটি একটি ৪-বিটের আনওয়েটেড কোড (unweighted code), যা BCD কোডের সাথে ৩ (বাইনারিতে ০০১১) যোগ করে পাওয়া যায়। একে XS-3 কোড-ও বলা হয়।
বৈশিষ্ট্য:
- এটি একটি আনওয়েটেড কোড (বিটগুলোর কোনো নির্দিষ্ট ওজন নেই)।
- এটি সেলফ-কমপ্লিমেন্টিং কোড (self-complementing code) অর্থাৎ কোনো Excess-3 কোডের 1's complement নিলে সেটি ওই সংখ্যার 9's complement-এর Excess-3 কোড পাওয়া যায়। এটি গাণিতিক কাজে, বিশেষ করে ডিজিটাল সিস্টেমে বিয়োগের কাজ সহজ করার জন্য সুবিধাজনক।
1 → 1+3 = 4 → 0100
3 → 3+3 = 6 → 0110
সুতরাং (13)₁₀ = (0100 0110)XS-3
৪. আলফানিউমেরিক কোডের বিস্তারিত (জোন, সংখ্যাসূচক ও প্যারিটি বিট সহ)
আলফানিউমেরিক কোডগুলো (যেমন- ASCII, EBCDIC) মূলত কয়েকটি বিটের সমন্বয়ে গঠিত হয়। এদের গঠন বোঝার জন্য আমাদের তিনটি বিশেষ বিট সম্পর্কে জানতে হবে:
📌 কোডের গঠন: জোন বিট, সংখ্যাসূচক বিট ও প্যারিটি বিট
১. জোন বিট (Zone Bit): কোডের বাম দিকের বিটগুলোকে জোন বিট বলে। এটি নির্দেশ করে ইনপুট করা ডেটাটি কোন ক্যাটাগরির (যেমন- এটি কি বড় হাতের অক্ষর, ছোট হাতের অক্ষর, নাকি সংখ্যা)।
২. সংখ্যাসূচক বিট (Numeric Bit): কোডের ডান দিকের বিটগুলোকে (সাধারণত ৪ বিট) সংখ্যাসূচক বিট বলে। এটি নির্দিষ্ট ক্যাটাগরির ভেতরের সুনির্দিষ্ট মান বা অবস্থান প্রকাশ করে।
৩. প্যারিটি বিট (Parity Bit) - ভেরি ইম্পর্ট্যান্ট!: এক কম্পিউটার থেকে অন্য কম্পিউটারে ডেটা পাঠানোর সময় নয়েজ বা ত্রুটির কারণে 0 পরিবর্তন হয়ে 1, বা 1 পরিবর্তন হয়ে 0 হয়ে যেতে পারে। এই ভুল বা ত্রুটি শনাক্ত করার জন্য (Error Detection) মূল ডেটার বাম পাশে অতিরিক্ত ১টি বিট যোগ করা হয়। একেই প্যারিটি বিট বলে। প্যারিটি বিট দুই প্রকার:
- Even Parity (জোড় প্যারিটি): মূল ডেটা এবং প্যারিটি বিট মিলিয়ে 1-এর মোট সংখ্যা জোড় রাখা হয়। (যেমন: ডেটা 1010101 হলে, 1 আছে ৪টি যা জোড়। তাই প্যারিটি বিট হবে 0। মোট: 01010101)
- Odd Parity (বিজোড় প্যারিটি): মূল ডেটা এবং প্যারিটি বিট মিলিয়ে 1-এর মোট সংখ্যা বিজোড় রাখা হয়। (যেমন: ডেটা 1010101 হলে, বিজোড় বানাতে প্যারিটি বিট হবে 1। মোট: 11010101)
৪.১ ASCII কোড (American Standard Code for Information Interchange)
সংজ্ঞা ও ইতিহাস: ASCII হচ্ছে একটি ৭ বা ৮ বিটের আলফানিউমেরিক কোড যা কম্পিউটার ও অন্যান্য ডিজিটাল ডিভাইসে টেক্সট উপস্থাপনের জন্য ব্যবহৃত হয়। ১৯৬৩ সালে ANSI (American National Standard Institute) কর্তৃক এটি প্রথম উদ্ভাবিত হয় এবং ১৯৬৫ (পরবর্তীতে ১৯৬৮) সালে রবার্ট উইলিয়াম বিলার ৭ বিটের ASCII কোড চূড়ান্ত রূপ দেন। মূলত টেলিটাইপ ও টেলিগ্রাফ যোগাযোগ ব্যবস্থার জন্য এটি তৈরি করা হয়েছিল।
ASCII প্রধানত দুই প্রকার:
- ASCII-7: এটি ৭ বিটের কোড। সর্বমোট ২⁷ = ১২৮ টি ক্যারেক্টার প্রকাশ করা যায়। এর মধ্যে ০-৩১ পর্যন্ত ৩২টি কোড হলো কন্ট্রোল ক্যারেক্টার (যেমন ESC, DEL, Backspace), এবং ৩২-১২৭ পর্যন্ত ৯৬টি হলো প্রিন্টেবল ক্যারেক্টার।
[নোট: 'A' থেকে 'Z' এর ডেসিমেল মান ৬৫-৯০ এবং 'a' থেকে 'z' এর মান ৯৭-১২২] - ASCII-8 (Extended ASCII): এটি ৮ বিটের কোড। ASCII-7-এর বাম পাশে ১টি প্যারিটি বিট যোগ করে এটি তৈরি। সর্বমোট ২⁸ = ২৫৬ টি ক্যারেক্টার প্রকাশ করা যায়। বর্তমানে অ্যাসকি কোড বলতে ASCII-8-কে বোঝায়।
[0] [1 0 0] [0 0 0 1]
প্যারিটি জোন বিট সংখ্যাসূচক বিট
৪.২ EBCDIC কোড (Extended Binary Coded Decimal Interchange Code)
ইতিহাস ও সংজ্ঞা: এটি একটি ৮ বিটের আলফানিউমেরিক কোড (সর্বমোট ২⁸ = ২৫৬ ক্যারেক্টার)। ১৯৬৩-৬৪ সালের দিকে IBM কর্পোরেশন তাদের মেইনফ্রেম কম্পিউটার (যেমন IBM System/360) এবং মিনি কম্পিউটারের জন্য এই কোড উদ্ভাবন করে। প্রাচীন কাগজের পাঞ্চ কার্ডে গর্ত করে ইনপুট দেওয়ার সময় এটি ব্যবহৃত হতো।
EBCDIC এর গঠন (জোন বিটের বিস্তারিত):
BCD কোডের ৪ বিটের সাথে আরও ৪টি জোন বিট যোগ করে ৮ বিটের EBCDIC গঠিত হয়। EBCDIC কোডে ক্যাটাগরি অনুযায়ী জোন বিট নির্দিষ্ট থাকে:
- অক্ষর A থেকে I: জোন বিট
1100 - অক্ষর J থেকে R: জোন বিট
1101 - অক্ষর S থেকে Z: জোন বিট
1110 - সংখ্যা (0 থেকে 9): জোন বিট
1111 - বিশেষ চিহ্ন: জোন বিট
0100,0110ও0111
সংখ্যার জন্য জোন বিট হলো 1111.
5 এর BCD (0101) → EBCDIC: [1111][0101] = 11110101
4 এর BCD (0100) → EBCDIC: [1111][0100] = 11110100
সুতরাং (54)₁₀ = (11110101 11110100)EBCDIC
৪.৩ ইউনিকোড (Unicode) - Universal Code
সংজ্ঞা ও প্রয়োজনীয়তা: ইউনিকোড হলো একটি ১৬ বিটের (২ বাইট) আলফানিউমেরিক কোড যা বিশ্বের সকল ভাষার বর্ণ, সংখ্যা ও চিহ্নকে একীভূতভাবে উপস্থাপনের জন্য ব্যবহৃত হয়। ASCII বা EBCDIC দিয়ে মাত্র ২৫৬টি চিহ্ন প্রকাশ করা যায়, যা বিশ্বের সব ভাষার জন্য যথেষ্ট নয়, তাই ইউনিকোড তৈরি করা হয়।
ইতিহাস: ১৯৯১ সালে Unicode Consortium নামক প্রতিষ্ঠান ২৪টি ভাষা নিয়ে এর প্রথম সংস্করণ চালু করে। বাংলাদেশ সরকার ২০১০ সালে এর সদস্যপদ লাভ করে।
বৈশিষ্ট্য ও ডেটা:
- এটি মূলত ১৬ বিটের কোড, ফলে ২¹⁶ = ৬৫,৫৩৬ টি ক্যারেক্টার প্রকাশ করা যায়।
- বর্তমানে এটি ২১ বিট পর্যন্ত সম্প্রসারিত, ফলে সর্বমোট ১,১১২,০৬৪ টি ক্যারেক্টার এনকোড করা সম্ভব।
- ইউনিকোডের প্রথম ২৫৬টি ক্যারেক্টার হুবহু ASCII-8-এর সমান। (অর্থাৎ ASCII ইউনিকোডের একটি সাবসেট)।
- বাংলা ভাষা: ইউনিকোডে বাংলা ভাষার জন্য U+0980 থেকে U+09FF (হেক্সা ০৯৮০-০৯FF) পর্যন্ত কোড বরাদ্দ রয়েছে। (যেমন: 'ক' = U+0995)।
ইউনিকোডের ফরম্যাট (UTF):
| UTF-8 | ৮-৩২ বিট (পরিবর্তনশীল)। ওয়েবসাইটে সবচেয়ে বেশি ব্যবহৃত। ASCII-এর সাথে সামঞ্জস্যপূর্ণ। |
| UTF-16 | ১৬-৩২ বিট (পরিবর্তনশীল)। উইন্ডোজ ও জাভায় ব্যবহৃত। |
| UTF-32 | ৩২ বিট (স্থির)। বেশি জায়গা নেয়। |
৫. অন্যান্য কোড
৫.১ গ্রে কোড (Gray Code)
বিজ্ঞানী ফ্রাঙ্ক গ্রে এটি আবিষ্কার করেন। গ্রে কোড হচ্ছে একটি আনওয়েটেড বাইনারি সিকোয়েন্স, যেখানে এক স্টেট থেকে পরবর্তী স্টেটে যাওয়ার সময় শুধুমাত্র ১টি বিটের পরিবর্তন ঘটে। একে ইউনিট ডিস্ট্যান্স কোড (Unit Distance Code) বা রিফ্লেক্টিভ কোড-ও বলা হয়।
- এটি কোনো গাণিতিক কোড নয়।
- পরপর দুটি কোডের মধ্যে মাত্র ১টি বিট পরিবর্তিত হওয়ায় এটি ত্রুটি কমায়।
- ব্যবহার: শ্যাফট এনকোডার (shaft position encoders), ইলেক্ট্রোমেকানিক্যাল সুইচ এবং ডিজিটাল টিভিতে (DTTV) ত্রুটি সংশোধনে।
৫.২ মোর্স কোড (Morse Code)
এটি একটি প্রাচীন যোগাযোগ ব্যবস্থা, মূলত টেলিগ্রাফ যোগাযোগের জন্য উদ্ভাবিত হয়। এখানে ডট (.) এবং ড্যাশ (-) এর মাধ্যমে অক্ষর ও সংখ্যা প্রকাশ করা হয়। (উদাহরণ: SOS = ... --- ...)
৬. কোড রূপান্তর পদ্ধতি
BCD থেকে Excess-3
BCD কোডকে দশমিকে নিয়ে তার সাথে ৩ যোগ করে আবার ৪-বিট বাইনারি করুন।
উদাহরণ: (1001)BCD = 9.
9 + 3 = 12 = 1100₂.
সুতরাং (1001)BCD = (1100)XS-3
EBCDIC থেকে BCD
EBCDIC কোডের প্রথম ৪ বিট (জোন বিট) বাদ দিয়ে শেষ ৪ বিট (সংখ্যাসূচক বিট) নিন।
উদাহরণ: (11110101)EBCDIC
→ 0101 (BCD) = 5₁₀
৭. বিভিন্ন কোডের তুলনামূলক চার্ট
| কোড | বিট সংখ্যা | সর্বোচ্চ ক্যারেক্টার | উদ্ভাবক / ব্যবহার ক্ষেত্র |
|---|---|---|---|
| BCD | ৪ | ১০ (০-৯) | ক্যালকুলেটর, ৭-সেগমেন্ট ডিসপ্লে |
| Excess-3 | ৪ | ১০ (০-৯) | ডিজিটাল বিয়োগের কাজে |
| ASCII-8 | ৮ | ২৫৬ | ANSI / পিসি, কীবোর্ড, মাউস |
| EBCDIC | ৮ | ২৫৬ | IBM / মেইনফ্রেম কম্পিউটার |
| Unicode | ১৬-৩২ | ১ মিলিয়নের বেশি | Unicode Consortium / বিশ্বের সব ভাষা, ওয়েব |
৮. জ্ঞানমূলক ও বহুনির্বাচনী প্রশ্ন (MCQ)
গুরুত্বপূর্ণ জ্ঞানমূলক প্রশ্ন:
উত্তর: দশমিক সংখ্যা পদ্ধতির প্রতিটি অঙ্ককে আলাদাভাবে সমতুল্য চার বিট বাইনারি সংখ্যা দ্বারা প্রকাশ করাকে BCD কোড বলে। এটি কোনো সংখ্যা পদ্ধতি নয়।
উত্তর: এক কম্পিউটার থেকে অন্য কম্পিউটারে ডেটা প্রেরণের সময় ভুল বা ত্রুটি নির্ণয়ের জন্য মূল ডেটার সাথে যে অতিরিক্ত ১টি বিট যুক্ত করা হয়, তাকে প্যারিটি বিট বলে।
উত্তর: ১০১০, ১০১১, ১১০০, ১১০১, ১১১০, ১১১১ — এই ৬টি কম্বিনেশন BCD-তে অবৈধ বা ব্যবহার অনুপযুক্ত।
উত্তর: গ্রে কোড হচ্ছে একটি আনওয়েটেড কোড, যেখানে এক স্টেট থেকে পরবর্তী স্টেটে যাওয়ার সময় শুধুমাত্র ১টি বিটের পরিবর্তন ঘটে।
বোর্ড স্ট্যান্ডার্ড MCQ (নিজে যাচাই করো):
১. বাংলা ভাষাকে কম্পিউটারে অন্তর্ভুক্ত করার জন্য কোন কোড ব্যবহৃত হয়?
ক) ASCII খ) EBCDIC গ) ইউনিকোড (সঠিক) ঘ) BCD
২. BCD কোডে কোনটি অবৈধ?
ক) 1001 খ) 0111 গ) 1000 ঘ) 1010 (সঠিক)
৩. (25)₁₀ এর সমতুল্য BCD কোড কোনটি?
ক) 0010 0101 (সঠিক) খ) 11001 গ) 0101 0010 ঘ) 0011 0110
৪. গ্রে কোডের অপর নাম কী?
ক) ওয়েটেড কোড খ) রিফ্লেক্টিভ কোড / ইউনিট ডিসট্যান্স কোড (সঠিক) গ) গাণিতিক কোড ঘ) আলফানিউমেরিক কোড
৫. EBCDIC কোডে সংখ্যার জন্য জোন বিট কোনটি?
ক) 1100 খ) 1101 গ) 1110 ঘ) 1111 (সঠিক)
৬. ASCII-8 কোডে প্যারিটি বিট, জোন বিট ও সংখ্যাসূচক বিট যথাক্রমে কয়টি?
ক) ৩, ৪, ১ খ) ১, ৩, ৪ (সঠিক) গ) ১, ৪, ৩ ঘ) ৪, ৩, ১
৯. সংক্ষিপ্তসার ও মনে রাখার টেকনিক
- কোড: ডেটাকে কম্পিউটারের বোধগম্য বাইনারি বিন্যাসে রূপান্তর।
- BCD কোড: প্রতিটি দশমিক অঙ্কের জন্য ৪-বিট বাইনারি (৮৪২১ ওয়েটেড কোড)।
- Excess-3 কোড: BCD + 0011 (সেলফ-কমপ্লিমেন্টিং বা আনওয়েটেড)।
- ASCII: ৭ বা ৮ বিট। উদ্ভাবন: ১৯৬৩, ANSI. (PC ও ইন্টারনেটে বহুল ব্যবহৃত)।
- EBCDIC: ৮ বিট কোড। উদ্ভাবন: IBM. (মেইনফ্রেম কম্পিউটারে ব্যবহৃত)।
- Unicode: বিশ্বের সব ভাষার জন্য ১৬ বিটের সর্বজনীন কোড, উদ্ভাবন: ১৯৯১ সাল।
- Gray Code: পরপর দুটি কোডের মধ্যে মাত্র ১টি বিট পরিবর্তিত হয়।
- প্যারিটি বিট: ডেটা ট্রান্সমিশনে ভুল সনাক্তকরণের জন্য অতিরিক্ত বিট (Even/Odd)।
১০. সাধারণ জিজ্ঞাসা (FAQ)
প্যারিটি বিট কি ভুল সংশোধন করতে পারে?না, সাধারণ প্যারিটি বিট শুধুমাত্র ডেটার ভুল 'শনাক্ত' (Detect) করতে পারে, এটি নিজে থেকে ভুল 'সংশোধন' (Correct) করতে পারে না। ভুল সংশোধনের জন্য হ্যামিং কোড (Hamming Code) নামক বিশেষ কোড ব্যবহার করা হয়।
ইউনিকোড কেন এত জনপ্রিয়?কারণ ইউনিকোড বিশ্বের প্রায় প্রতিটি ভাষার (বাংলা, আরবি, চাইনিজ ইত্যাদি) বর্ণ ও চিহ্ন সমর্থন করে। আগে মাতৃভাষায় লেখার জন্য আলাদা ফন্ট ও এনকোডিং লাগত, ইউনিকোড আসায় একটি সিস্টেমেই সারা বিশ্বের মানুষ মাতৃভাষায় কাজ করতে পারছে।
ASCII এবং Unicode এর মধ্যে সম্পর্ক কী?ইউনিকোডের প্রথম ২৫৬টি ক্যারেক্টার হুবহু ASCII-8 কোডের সমান। অর্থাৎ, ASCII হলো ইউনিকোডের একটি সাবসেট বা ছোট অংশ।
ICT with Anik
সহজ ভাষায় আইসিটি শিখতে ভিজিট করুন: anikdatta.com
উপদেশ: পরীক্ষার খাতায় লিখতে গেলে প্রতিটি কোডের পূর্ণরূপ, বিটের গঠন (জোন ও সংখ্যাসূচক) এবং উদাহরণ উল্লেখ করবেন।