কোডিং সিস্টেম: BCD, ASCII, EBCDIC ও ইউনিকোড

এইচএসসি আইসিটি অধ্যায় ৩: বিভিন্ন কোডিং সিস্টেম যেমন BCD, ASCII, EBCDIC এবং Unicode এর বিস্তারিত আলোচনা। বাংলা ভাষায় কম্পিউটিং এর জন্য ইউনিকোডের গুরুত্ব।

শেখা শুরু করুন

কোডিং সিস্টেম: BCD, ASCII, EBCDIC ও ইউনিকোড

  1. কোডিং সিস্টেম: BCD, ASCII, EBCDIC ও ইউনিকোড
  2. তুমি তো 'A' চাপলে, কম্পিউটার কী বুঝল?
  3. কোড (Code) আসলে কী?
  4. BCD কোড (Binary Coded Decimal)
  5. BCD কোডে রূপান্তর উদাহরণ
  6. সতর্কতা: BCD এবং বাইনারি এক নয়!
  7. আলফানিউমেরিক কোড: শুধু সংখ্যা যথেষ্ট নয়
  8. ASCII কোড (অ্যাস্কি)
  9. EBCDIC কোড
  10. সমস্যা: কম্পিউটারে বাংলা লিখব কীভাবে?
  11. সমাধান: ইউনিকোড (Unicode - Universal Code)
  12. এক নজরে তুলনা: BCD, ASCII, EBCDIC ও Unicode
  13. সারাংশ ও বাড়ির কাজ

কোডিং সিস্টেম: BCD, ASCII, EBCDIC ও ইউনিকোড

এই লেকচার শেষে আমরা-

১। কোডিং সিস্টেম কী এবং কেন প্রয়োজন তা ব্যাখ্যা করতে পারব।
২। BCD, ASCII, EBCDIC এবং Unicode এর পূর্ণরূপ ও গঠন বর্ণনা করতে পারব।
৩। বিভিন্ন কোডিং সিস্টেমের মধ্যে তুলনা করতে পারব।
৪। ইউনিকোড কীভাবে বাংলা ভাষাকে কম্পিউটারে স্থান দিয়েছে তা বিশ্লেষণ করতে পারব।

সুপ্রিয় শিক্ষার্থীরা, আসসালামু আলাইকুম। এইচএসসি আইসিটি কোর্সের আজকের ক্লাসে তোমাদের সবাইকে স্বাগতম! আমি তোমাদের সাথে আছি, আর আজ আমরা শিখব কম্পিউটারের ভাষার এক অত্যন্ত গুরুত্বপূর্ণ অধ্যায়—'কোডিং সিস্টেম'। তোমরা হয়তো ভাবছ, কম্পিউটার তো শুধু ০ আর ১ বোঝে, তাহলে সে কীভাবে ইংরেজি 'A', বা বাংলা 'ক' চিনে নেয়? বা এই যে আমি তোমাদের সাথে কথা বলছি, এই লেখাগুলো স্ক্রিনে কীভাবে ভেসে উঠছে? এর পেছনের জাদুটাই হলো আজকের টপিক। এই লেকচার শেষে আমরা—কোডিং সিস্টেম কী তা বুঝতে পারব, BCD, ASCII ও ইউনিকোডের রহস্য ভেদ করতে পারব, এবং সবচেয়ে ইন্টারেস্টিং বিষয়—বাংলা ভাষা কীভাবে কম্পিউটারে জায়গা করে নিল, তা জানব। চলো শুরু করা যাক!

তুমি তো 'A' চাপলে, কম্পিউটার কী বুঝল?

কীবোর্ড থেকে মনিটর: ডেটার যাত্রা
  • ইনপুট: কীবোর্ডে 'A' প্রেস করা হলো
  • প্রসেস: একটি বৈদ্যুতিক সিগন্যাল তৈরি হলো (যেমন: $01000001$)
  • আউটপুট: মনিটরে 'A' দেখা গেল
  • ফলাফল: মাঝখানের এই অনুবাদকই হলো 'কোড'

কম্পিউটার মানুষের ভাষা বোঝে না, সে সবকিছুকেই ০ এবং ১ এ রূপান্তর করে নেয়।

আচ্ছা, একটা দৃশ্য কল্পনা করো। তুমি কীবোর্ডে 'A' প্রেস করলে। সাথে সাথে মনিটরে 'A' ভেসে উঠল। কিন্তু মাঝখানের এই সময়টুকুতে আসলে কী হলো? কম্পিউটার কি জানে 'A' দেখতে কেমন? একদম না! কম্পিউটার তো একটা বোকা বাক্স, সে শুধু বোঝে বিদ্যুৎ আছে কি নেই—মানে ১ আর ০। তাহলে এই 'A' চাপার সাথে সাথে একটা বৈদ্যুতিক সিগন্যাল তৈরি হলো—ধরো সেটা '০-১-০-০...' এরকম কিছু। এই সিগন্যালটা প্রসেসরের কাছে গেল, আর প্রসেসর সেটাকে আবার 'A' হিসেবে মনিটরে পাঠাল। এই যে মানুষের ভাষাকে মেশিনের ভাষায় রূপান্তর করার পদ্ধতি—এটাই হলো কোডিং। স্ক্রিনে দেখো, কীভাবে তোমার আঙুলের চাপ একটা বাইনারি কোডে পরিণত হয়ে যাচ্ছে!

কোড (Code) আসলে কী?

সংজ্ঞা ও প্রক্রিয়া

সংজ্ঞা: কম্পিউটার সিস্টেমে ব্যবহৃত প্রতিটি বর্ণ, অংক বা বিশেষ চিহ্নকে আলাদাভাবে সিপিউ-কে বোঝানোর জন্য যে অদ্বিতীয় বাইনারি বিন্যাস (০ ও ১) ব্যবহার করা হয়, তাকে কোড বলে।

প্রক্রিয়া:
* এনকোডিং (Encoding): মানুষের ভাষা $\rightarrow$ যান্ত্রিক ভাষা (কীবোর্ডের কাজ)
* ডিকোডিং (Decoding): যান্ত্রিক ভাষা $\rightarrow$ মানুষের ভাষা (মনিটরের কাজ)

তাহলে কোড বা কোডিং সিস্টেমের সংজ্ঞাটা কী হবে? খুব সহজ কথায়, কম্পিউটার সিস্টেমে ব্যবহৃত প্রতিটি বর্ণ, অংক বা চিহ্নকে সিপিউ-কে বোঝানোর জন্য যে অদ্বিতীয় বাইনারি বিন্যাস ব্যবহার করা হয়, তাকেই কোড বলে। এখানে দুটো ঘটনা ঘটে। ছবিটা খেয়াল করো। যখন তুমি ইনপুট দিচ্ছ, তখন মানুষের ভাষা মেশিনের ভাষায় পাল্টাচ্ছে—একে বলি এনকোডিং (Encoding)। আবার যখন কম্পিউটার তোমাকে ফলাফল দেখাচ্ছে, তখন মেশিনের ভাষা মানুষের ভাষায় ফিরে আসছে—একে বলি ডিকোডিং (Decoding)। অর্থাৎ, কোডিং হলো মানুষ ও মেশিনের মধ্যে যোগাযোগের সেতু।

BCD কোড (Binary Coded Decimal)

পরিচিতি
  • পূর্ণরূপ: Binary Coded Decimal
  • সংজ্ঞা: দশমিক সংখ্যার প্রতিটি অংককে সমতুল্য ৪-বিটের বাইনারি দ্বারা প্রকাশ করা।
  • বিট সংখ্যা: ৪ বিট (প্রতিটি অংকের জন্য)
  • ব্যবহার: ক্যালকুলেটর, ডিজিটাল ঘড়ি, ইলেকট্রনিক কাউন্টার।

এটি দশমিক পদ্ধতির সংখ্যাকে বাইনারি সংখ্যার মাধ্যমে প্রকাশের একটি বিশেষ ব্যবস্থা।

শুরুতেই আসি BCD কোড নিয়ে। এর পূর্ণরূপ হলো 'Binary Coded Decimal'। নামটা ভালো করে খেয়াল করো—দশমিক সংখ্যাকে বাইনারিতে কোড করা। এটা কিন্তু সরাসরি বাইনারি রূপান্তর নয়, বরং দশমিকের প্রতিটি অংককে আলাদা আলাদা করে ৪টি বিট দিয়ে প্রকাশ করা হয়। কেন ৪টি বিট? কারণ দশমিকের সবচেয়ে বড় অংক হলো ৯, আর ৯ লিখতে বাইনারিতে ১০০১ লাগে, মানে ৪ বিট। সাধারণত ক্যালকুলেটর বা ডিজিটাল ঘড়িতে এই কোড বেশি ব্যবহৃত হয়।

BCD কোডে রূপান্তর উদাহরণ

দশমিক সংখ্যা: $(35)_{10}$

রূপান্তর ধাপ:
1. $3 \rightarrow 0011$ (৪ বিট)
2. $5 \rightarrow 0101$ (৪ বিট)

BCD মান: $00110101$ (BCD)

লক্ষ্যণীয়: এটি সরাসরি বাইনারি রূপান্তর থেকে সম্পূর্ণ ভিন্ন।

চলো একটা উদাহরণ দিয়ে বিষয়টা পরিষ্কার করি। ধরো, আমাদের সংখ্যাটি হলো ৩৫। এটা একটা দশমিক সংখ্যা। একে যদি আমরা BCD তে নিতে চাই, তবে ৩ এবং ৫ কে আলাদা করতে হবে। ৩ এর ৪-বিটের বাইনারি মান কত? ০০১১। আর ৫ এর মান? ০১০১। ব্যাস! এই দুটোকে পাশাপাশি বসিয়ে দিলেই পেয়ে গেলাম ৩৫ এর BCD কোড—০০১১০১০১। খুব সহজ, তাই না? ভিডিওটা একটু পজ করো এবং নিজে নিজে ভাবো তো, ৯২ এর BCD কোড কী হবে?

সতর্কতা: BCD এবং বাইনারি এক নয়!

উদাহরণ: $(13)_{10}$

সাধারণ বাইনারি:
* $(13)_{10} = 1101_2$
* (বিট সংখ্যা ৪টি)

BCD কোড:
* $1 \rightarrow 0001$
* $3 \rightarrow 0011$
* $(13)_{10} = 00010011$ (BCD)
* (বিট সংখ্যা ৮টি)

সিদ্ধান্ত: সব BCD কোডই বাইনারি সংখ্যা, কিন্তু সব বাইনারি সংখ্যা BCD কোড নয়।

এখানেই ছাত্রছাত্রীরা সবচেয়ে বেশি ভুল করে। তারা মনে করে BCD আর বাইনারি বুঝি একই জিনিস। সাবধান! স্ক্রিনে তাকাও। আমরা ১৩ সংখ্যাটিকে নিয়েছি। যদি সাধারণ বাইনারি করি, ১৩ এর মান হয় ১১০১—মানে ৪ বিটেই কাজ শেষ। কিন্তু যদি BCD করি? তখন ১ এর জন্য ০০০১ আর ৩ এর জন্য ০০১১—মোট ৮ বিট লেগে যাচ্ছে! অর্থাৎ, BCD তে মেমোরি বেশি লাগে। সব BCD কোডই বাইনারি সংখ্যা, কিন্তু সব বাইনারি সংখ্যা BCD কোড নয়। এই পার্থক্যটা খুব ভালো করে মাথায় গেঁথে নাও।

আলফানিউমেরিক কোড: শুধু সংখ্যা যথেষ্ট নয়

সমস্যা: BCD দিয়ে শুধু ০-৯ পর্যন্ত সংখ্যা লেখা যায়। কিন্তু 'A', '?', '+', '@' কীভাবে লিখব?

সমাধান: আলফানিউমেরিক কোড (Alphanumeric Code)।
* অক্ষর (a-z, A-Z)
* অংক (0-9)
* গাণিতিক চিহ্ন (+, -, *)
* বিশেষ চিহ্ন (!, @, #)

জনপ্রিয় কোডসমূহ: ASCII, EBCDIC, Unicode

এতক্ষণ তো শুধু সংখ্যা নিয়ে কথা বললাম। কিন্তু বন্ধুকে মেসেজ পাঠাতে তো শুধু সংখ্যা চলে না, তাই না? অক্ষর লাগে, প্রশ্নবোধক চিহ্ন লাগে, ইমোজি লাগে। BCD দিয়ে তো 'A' বা '@' লেখা যাবে না। তাহলে উপায়? এর জন্য আমাদের দরকার আলফানিউমেরিক কোড। আলফা মানে অ্যালফাবেট বা বর্ণ, আর নিউমেরিক মানে সংখ্যা। অর্থাৎ যে কোড দিয়ে অক্ষর, সংখ্যা, এবং বিশেষ চিহ্ন—সবই প্রকাশ করা যায়। এর মধ্যে সবচেয়ে জনপ্রিয় হলো ASCII, EBCDIC এবং আমাদের সবার প্রিয় ইউনিকোড।

ASCII কোড (অ্যাস্কি)

পূর্ণরূপ: American Standard Code for Information Interchange

প্রকারভেদ:
* ASCII-7 (৭ বিট): $2^7 = 128$টি চিহ্ন। (বাম পাশে ১টি প্যারিটি বিট থাকে)
* ASCII-8 (৮ বিট): $2^8 = 256$টি চিহ্ন।

গঠন:
* ১ম ৩টি জোন বিট (Zone Bit)
* শেষের ৪টি সংখ্যাসূচক বিট (Numeric Bit)
* উদাহরণ: 'A' এর ASCII মান ৬৫ ($1000001$)

প্রথমে আসি অ্যাস্কি (ASCII) কোড নিয়ে। এর পূর্ণরূপটা পরীক্ষায় খুব আসে—'American Standard Code for Information Interchange'। ১৯৬৫ সালে রবার্ট বিমার এটি তৈরি করেন। এটি দুই ধরনের হয়। ASCII-7, যেখানে ৭টি বিট থাকে এবং ১২৮টি চিহ্ন প্রকাশ করা যায়। আর ASCII-8, যেখানে ৮টি বিট থাকে এবং ২৫৬টি চিহ্ন প্রকাশ করা যায়। এই যে আমরা কীবোর্ডে ইংরেজি লিখি, এর পেছনে এই অ্যাস্কি কোডই কাজ করে। যেমন 'A' এর অ্যাস্কি মান ৬৫। মজার ব্যাপার হলো, অ্যাস্কি কোডের মাধ্যমেই প্রথম কম্পিউটারগুলো একে অপরের সাথে তথ্য বিনিময় শুরু করেছিল।

EBCDIC কোড

পূর্ণরূপ: Extended Binary Coded Decimal Interchange Code

বৈশিষ্ট্য:
* বিট সংখ্যা: ৮ বিট ($2^8 = 256$টি চিহ্ন)
* ব্যবহার: মূলত IBM মেইনফ্রেম ও মিনি কম্পিউটারে ব্যবহৃত হতো।
* বর্তমান অবস্থা: বর্তমানে এর ব্যবহার সীমিত।

এটিও একটি আলফানিউমেরিক কোড, তবে ASCII এর চেয়ে ভিন্ন বিন্যাস ব্যবহার করে।

আরেকটি কোড হলো EBCDIC (ইবিসিডিআইসি)। এর পূর্ণরূপ 'Extended Binary Coded Decimal Interchange Code'। নামটা একটু বড়, তাই না? এটি ৮ বিটের কোড, তাই এতেও ২৫৬টি চিহ্ন লেখা যায়। তবে এটি এখন আর তেমন একটা দেখা যায় না। আগেকার দিনে IBM এর বড় বড় মেইনফ্রেম কম্পিউটারে এটি খুব চলত। তোমাদের শুধু পূর্ণরূপটা আর এটি যে ৮ বিটের কোড—এটুকু মনে রাখলেই চলবে।

সমস্যা: কম্পিউটারে বাংলা লিখব কীভাবে?

সীমাবদ্ধতা
  • ASCII বা EBCDIC তে মাত্র ২৫৬টি চিহ্ন সাপোর্ট করে।
  • ইংরেজি ছাড়া বাংলা, আরবি, চাইনিজ ভাষার হাজার হাজার বর্ণ এতে জায়গা হয় না।

প্রশ্ন: তাহলে উপায়? বিশ্বজুড়ে সব ভাষা কীভাবে কম্পিউটারে আসবে?

এখন একটা বড় সমস্যার কথা ভাবো। অ্যাস্কি বা ইবিসিডিআইসি—এরা সর্বোচ্চ ২৫৬টি চিহ্ন সাপোর্ট করে। ইংরেজির জন্য এটা যথেষ্ট। কিন্তু আমাদের বাংলা ভাষা? বা চাইনিজ, জাপানিজ ভাষা? সেখানে তো হাজার হাজার বর্ণ! একটা ছোট বাক্সে কি হাতি ঢোকানো যায়? যায় না। ঠিক তেমনি, ২৫৬টি সিটে পৃথিবীর সব ভাষার জায়গা হচ্ছিল না। ফলে এক কম্পিউটারের লেখা অন্য কম্পিউটারে নিলে আবোল-তাবোল দেখাত। এই সমস্যার সমাধান কী?

সমাধান: ইউনিকোড (Unicode - Universal Code)

পূর্ণরূপ: Universal Code

মূল কথা: বিশ্বের সকল ভাষার বর্ণ ও চিহ্নকে একক কোডভুক্ত করা।

বৈশিষ্ট্য:
* বিট সংখ্যা: ১৬ বিট ($2^{16} = 65,536$টি চিহ্ন)। বর্তমানে ৩২ বিটও আছে।
* সুবিধাসমূহ:
১. বাংলাসহ বিশ্বের সব ভাষা লেখা যায়।
২. মেমোরি বেশি লাগে (প্রতিটি ক্যারেক্টারে ২ বাইট)।

এই সমস্যার ত্রাণকর্তা হিসেবে এল ইউনিকোড (Unicode) বা ইউনিভার্সাল কোড। বিশ্বের তাবৎ ভাষাকে এক ছাতার নিচে আনার জন্য অ্যাপল, জেরক্স, মাইক্রোসফটের মতো কোম্পানিরা মিলে এটি তৈরি করে। এটি মূলত ১৬ বিটের কোড (বর্তমানে ৩২ বিটও আছে)। ১৬ বিট মানে ২ এর পাওয়ার ১৬—অর্থাৎ ৬৫,৫৩৬টি চিহ্ন! ভাবা যায়? এখানে বাংলা, আরবি, চাইনিজ, এমনকি তোমাদের প্রিয় ইমোজিগুলোরও জায়গা আছে। আজ যে আমরা ফনেটিক দিয়ে সহজে বাংলা লিখছি, বা ফেসবুকে স্ট্যাটাস দিচ্ছি—সবই এই ইউনিকোডের অবদান।

এক নজরে তুলনা: BCD, ASCII, EBCDIC ও Unicode

চলো, এতক্ষণ যা শিখলাম তা এক নজরে দেখে নিই। এই চার্টটা তোমাদের জন্য খুবই গুরুত্বপূর্ণ। BCD হলো ৪ বিটের, শুধু সংখ্যার জন্য। ASCII এবং EBCDIC হলো ৭ বা ৮ বিটের, ইংরেজি ও কিছু চিহ্নের জন্য। আর ইউনিকোড হলো ১৬ বিটের, যা বিশ্বের সকল ভাষার জন্য। পরীক্ষার হলে যদি পার্থক্য আসে, এই চার্টটা মনে করলেই তোমরা সুন্দর করে উত্তর লিখতে পারবে। তোমরা চাইলে ভিডিওটা পজ করে এই টেবিলটা খাতায় তুলে নিতে পারো।

সারাংশ ও বাড়ির কাজ

আজ আমরা শিখলাম:
* কোডিং সিস্টেম কী
* BCD vs Binary এর পার্থক্য
* ASCII, EBCDIC ও Unicode এর বৈশিষ্ট্য

বাড়ির কাজ:
১. $(75)_{10}$ কে BCD এবং বাইনারিতে রূপান্তর করে বিট সংখ্যার পার্থক্য বের করো।
২. 'বাংলা ভাষা কম্পিউটারে ব্যবহারের জন্য ইউনিকোড অপরিহার্য' - ব্যাখ্যা করো।

আজকের ক্লাসে আমরা কোডিং জগতের অনেক কিছু জানলাম। আমরা দেখলাম কীভাবে আমাদের মুখের ভাষাকে কম্পিউটার ০ আর ১ এ রূপান্তর করে। জানলাম BCD আর বাইনারির সূক্ষ্ম পার্থক্য। আর দেখলাম কীভাবে ইউনিকোড এসে ভাষার দেওয়াল ভেঙে দিল। তোমাদের জন্য ছোট্ট দুটো বাড়ির কাজ রইল—১. ৭৫ এর BCD এবং বাইনারি বের করে বিটের পার্থক্য দেখো। ২. কেন বাংলা ভাষার জন্য ইউনিকোড জরুরি—তা নিজের ভাষায় লেখো। আজ এ পর্যন্তই, দেখা হবে আগামী ক্লাসে নতুন কোনো টপিক নিয়ে। আল্লাহ হাফেজ!

কোডিং সিস্টেম: BCD, ASCII, EBCDIC ও ইউনিকোড

পড়তে প্রায় 14 মিনিট

কম্পিউটার বা ডিজিটাল ডিভাইস শুধুমাত্র ০ এবং ১—এই দুটি সিগন্যাল বুঝতে পারে। কিন্তু আমরা মানুষরা কথা বলি বাংলা, ইংরেজি বা অন্যান্য ভাষায়; ব্যবহার করি অংক (০-৯), বর্ণ (অ-ঔ, A-Z) এবং নানা চিহ্ন (!, @, #)। তাহলে মানুষের এই ভাষা কম্পিউটার কীভাবে বোঝে? এখানেই প্রয়োজন হয় কোডিং সিস্টেম (Coding System)

মানুষের ব্যবহৃত বর্ণ, অংক বা চিহ্নগুলোকে কম্পিউটারের বোধগম্য যান্ত্রিক ভাষায় (Machine Language) অর্থাৎ ০ এবং ১ এর বিন্যাসে রূপান্তর করার প্রক্রিয়াকে বলা হয় এনকোডিং (Encoding)। আবার কম্পিউটারের প্রসেস করা ফলাফলকে মানুষের বোধগম্য ভাষায় ফিরিয়ে আনার প্রক্রিয়াকে বলা হয় ডিকোডিং (Decoding)

এনকোডিং এবং ডিকোডিং সাইকেল

সংজ্ঞা (Definition): কোড (Code)

কম্পিউটার সিস্টেমে ডেটা প্রসেসিংয়ের জন্য ব্যবহৃত বর্ণ, অংক বা বিশেষ চিহ্নগুলোকে সিপিইউ-এর (CPU) বোধগম্য বাইনারি বিন্যাসে (০ এবং ১) অদ্বিতীয়ভাবে (Uniquely) উপস্থাপন করার জন্য যে সংকেত ব্যবহার করা হয়, তাকে কোড বলে।

মনে রাখবে: এনকোডিং ইনপুট ডিভাইসের (যেমন: কীবোর্ড) কাজ, যা মানুষের ভাষাকে মেশিনের ভাষায় রূপান্তর করে। আর ডিকোডিং আউটপুট ডিভাইসের (যেমন: মনিটর, প্রিন্টার) কাজ, যা মেশিনের ভাষাকে মানুষের ভাষায় রূপান্তর করে।

BCD কোড (Binary Coded Decimal): সংখ্যার সহজ রূপান্তর

BCD এর পূর্ণরূপ হলো Binary Coded Decimal। এটি কোনো সংখ্যা পদ্ধতি (Number System) নয়, বরং এটি দশমিক সংখ্যাকে বাইনারিতে রূপান্তর করার একটি বিশেষ কোডিং পদ্ধতি। দশমিক পদ্ধতির প্রতিটি অংককে (০-৯) সমতুল্য ৪-বিট বাইনারি মান দ্বারা প্রতিস্থাপন করে BCD কোড গঠন করা হয়।

BCD কোডের বিভিন্ন সংস্করণ রয়েছে (যেমন: Excess-3, 5421), তবে BCD-8421 হলো সবচেয়ে জনপ্রিয় এবং বহুল ব্যবহৃত পদ্ধতি। একে 'ন্যাচারাল BCD' ও বলা হয়।

গুরুত্বপূর্ণ (Important):
- BCD কোনো পজিশনাল সংখ্যা পদ্ধতি নয়।
- এতে প্রতিটি দশমিক অংকের জন্য ঠিক ৪টি করে বিট প্রয়োজন হয়।
- ০ থেকে ৯ পর্যন্ত অংকগুলোর জন্য BCD কোড এবং বাইনারি মান একই, কিন্তু ৯ এর পরের সংখ্যাগুলোর জন্য তা ভিন্ন।
- ১০১০ থেকে ১১১১ পর্যন্ত ৬টি বিন্যাস BCD তে ব্যবহার করা হয় না, এদেরকে অবৈধ কোড (Invalid Code) বলা হয়।

উদাহরণ ও ব্যাখ্যা

ধরি, একটি দশমিক সংখ্যা $(75)_{10}$। একে BCD তে রূপান্তর করতে হলে ৭ এবং ৫ কে আলাদাভাবে ৪ বিটের বাইনারিতে লিখতে হবে।

উদাহরণ ১: $(75)_{10}$ এর BCD কোড নির্ণয়

আমরা জানি,

$7 = 0111$ (৪ বিটে)

$5 = 0101$ (৪ বিটে)

সুতরাং, $(75)_{10} = (01110101)_{BCD}$

উদাহরণ ২: $(92)_{10}$ এর BCD কোড নির্ণয়

$9 = 1001$

$2 = 0010$

সুতরাং, $(92)_{10} = (10010010)_{BCD}$

সতর্কতা: বাইনারি সংখ্যা এবং BCD কোড এক নয়

শিক্ষার্থীরা প্রায়ই বাইনারি রূপান্তর এবং BCD কোডিংকে গুলিয়ে ফেলে। মনে রাখতে হবে, বাইনারি হলো একটি সংখ্যার গাণিতিক মান, আর BCD হলো অংকগুলোর সরাসরি প্রতিস্থাপন।

| বৈশিষ্ট্য | সাধারণ বাইনারি (Binary) | BCD কোড | |-----------|------------------------|---------| | সংজ্ঞা | সংখ্যার প্রকৃত মান নির্দেশ করে। | দশমিক অংকের বাইনারি প্রতিস্থাপন। | | বিট সংখ্যা | সাধারণত কম বিট প্রয়োজন হয়। | তুলনামূলক বেশি বিট প্রয়োজন হয়। | | ব্যবহার | গাণিতিক হিসাব-নিকাশে সুবিধাজনক। | ইনপুট/আউটপুট ডিভাইসে সুবিধাজনক। |
মেমোরি অপচয়ের প্রমাণ

নিচের উদাহরণটি লক্ষ্য করলে দেখা যাবে BCD তে একই সংখ্যা প্রকাশ করতে বেশি মেমোরি লাগে।

গাণিতিক প্রমাণ: $(25)_{10}$ এর ক্ষেত্রে

বাইনারি রূপান্তর: $(25)_{10} = (11001)_2$

এখানে মাত্র ৫টি বিট প্রয়োজন।


BCD রূপান্তর: $2 \rightarrow 0010, 5 \rightarrow 0101$

সুতরাং, $(25)_{10} = (00100101)_{BCD}$

এখানে মোট ৮টি বিট প্রয়োজন।


সিদ্ধান্ত: BCD কোড বাইনারি সংখ্যার চেয়ে বেশি বিট ব্যবহার করে, তাই এতে মেমোরি অপচয় হয়।

আলফানিউমেরিক কোড এবং ASCII

শুধুমাত্র সংখ্যা দিয়ে কম্পিউটারের সব কাজ করা সম্ভব নয়। আমাদের বর্ণ (a-z, A-Z), গাণিতিক চিহ্ন (+, -, =), এবং বিশেষ চিহ্ন (!, ?, @) প্রয়োজন হয়। অক্ষর, অংক এবং বিভিন্ন গাণিতিক ও বিশেষ চিহ্নসহ কীবোর্ডের সকল কি (Key) কে কম্পিউটারে ব্যবহারের জন্য যে কোড ব্যবহৃত হয়, তাকে আলফানিউমেরিক কোড (Alphanumeric Code) বলে। ASCII এবং EBCDIC হলো জনপ্রিয় আলফানিউমেরিক কোড।

ASCII (American Standard Code for Information Interchange)

১৯৬৫ সালে রবার্ট বিমার (Robert Bemer) এই কোড উদ্ভাবন করেন। এটি বর্তমানে বিশ্বের অন্যতম জনপ্রিয় কোডিং সিস্টেম। ASCII কোড দুই ধরনের হয়:

  1. ASCII-7: ৭ বিটের কোড। এতে $2^7 = 128$ টি চিহ্ন অদ্বিতীয়ভাবে নির্দিষ্ট করা যায়। বাম দিকের ১টি বিট প্যারিটি বিট হিসেবে ব্যবহৃত হয় (যদি ৮ বিট রেজিস্টার হয়)।
  2. ASCII-8: ৮ বিটের কোড। এতে $2^8 = 256$ টি চিহ্ন নির্দিষ্ট করা যায়। বর্তমানে এটিই বেশি ব্যবহৃত হয়।

ASCII কোডের গঠন:
ASCII কোডের ৮টি বিটকে সাধারণত দুটি অংশে ভাগ করা হয়:
- প্যারিটি বিট (Parity Bit): ১টি বিট (ভুল সনাক্তকরণের জন্য)।
- জোন বিট (Zone Bit): ৩টি বিট।
- নিউমেরিক বিট (Numeric Bit): ৪টি বিট।

প্যারিটি বিট (Parity Bit):
ডেটা আদান-প্রদানের সময় কোনো ভুল (Error) হয়েছে কি না, তা যাচাই করার জন্য মূল কোডের সাথে যে অতিরিক্ত একটি বিট (০ বা ১) জুড়ে দেওয়া হয়, তাকে প্যারিটি বিট বলে। এটি দুই প্রকার: জোড় প্যারিটি (Even Parity) ও বিজোড় প্যারিটি (Odd Parity)।

পরীক্ষার জন্য মুখস্থ মান (Must Memorize):
MCQ-তে প্রায়ই নির্দিষ্ট অক্ষরের ASCII মান জানতে চাওয়া হয়। নিচের মানগুলো মনে রাখা জরুরি: - **'A' থেকে 'Z' (বড় হাতের):** ৬৫ থেকে ৯০ - **'a' থেকে 'z' (ছোট হাতের):** ৯৭ থেকে ১২২ - **'0' থেকে '9' (অংক):** ৪৮ থেকে ৫৭ - **Space (ফাঁকা স্থান):** ৩২
*টিপস: বড় হাতের অক্ষরের সাথে ৩২ যোগ করলে ছোট হাতের অক্ষরের মান পাওয়া যায়। যেমন: A(65) + 32 = a(97)।*

EBCDIC কোড: মেইনফ্রেমের ভাষা

EBCDIC এর পূর্ণরূপ হলো Extended Binary Coded Decimal Interchange Code। এটি ৮ বিট বিশিষ্ট একটি আলফানিউমেরিক কোড।

সংজ্ঞা:
IBM কোম্পানি তাদের মেইনফ্রেম এবং মিনি কম্পিউটারে ব্যবহারের জন্য যে ৮-বিটের কোডিং সিস্টেম চালু করে, তাকে EBCDIC কোড বলে। এতে $2^8 = 256$ টি ভিন্ন ভিন্ন ক্যারেক্টার বা চিহ্ন প্রকাশ করা যায়।

বর্তমানে মাইক্রোকম্পিউটার বা পিসিতে এর ব্যবহার প্রায় নেই বললেই চলে। এতে ০-৯ অংকগুলোর জোন বিট হিসেবে সবগুলোতে 1111 ব্যবহার করা হয়।

ইউনিকোড (Unicode): ভাষার সীমানা বিলুপ্তি

কম্পিউটার প্রযুক্তির শুরুর দিকে শুধু ইংরেজি ভাষা প্রাধান্য পেত (ASCII দিয়ে)। কিন্তু বিশ্বের অন্যান্য ভাষা (যেমন: বাংলা, আরবি, চাইনিজ) কম্পিউটারে ব্যবহারের জন্য ASCII বা EBCDIC যথেষ্ট ছিল না। এই সমস্যা সমাধানের জন্য অ্যাপল এবং জেরক্স কর্পোরেশনের একদল প্রকৌশলী ১৯৯১ সালে ইউনিকোড কনসোর্টিয়াম গঠন করেন এবং Unicode উদ্ভাবন করেন।

সংজ্ঞা (Unicode):
বিশ্বের ছোট-বড় সকল ভাষাকে কম্পিউটারে কোডভুক্ত করার জন্য যে ১৬ বিটের (বর্তমানে ৩২ বিটও হয়) কোড ব্যবহৃত হয়, তাকে ইউনিকোড বা Universal Code বলে।

ইউনিকোডের বৈশিষ্ট্য ও গুরুত্ব
  • ধারণক্ষমতা: ইউনিকোড মূলত ১৬ বিটের কোড। ফলে এতে $2^{16} = 65,536$ টি অদ্বিতীয় চিহ্ন প্রকাশ করা যায়। বর্তমানে এর পরিধি আরও বেড়েছে।
  • ভাষার অন্তর্ভুক্তি: বাংলা, আরবি, গ্রিক, ল্যাটিন, চাইনিজ, জাপানিজসহ বিশ্বের প্রায় সব ভাষার লিপি এবং ইমোজি (Emoji) ইউনিকোডের অন্তর্ভুক্ত।
  • বাংলা ভাষা: আমাদের বাংলা ভাষার কম্পিউটিং (যেমন: অভ্র, বিজয় ৫২ এর আধুনিক সংস্করণ) ইউনিকোডের কারণেই এত সহজ হয়েছে।

বিভিন্ন কোডিং সিস্টেমের তুলনা

ASCII বনাম Unicode (পরীক্ষায় প্রায়ই আসে) | বৈশিষ্ট্য | ASCII (American Standard Code) | Unicode (Universal Code) | |-----------|--------------------------------|--------------------------| | বিট সংখ্যা | ৭ বা ৮ বিট। | ১৬ বিট (সাধারণত)। | | মোট চিহ্ন | ১২৮ বা ২৫৬ টি। | ৬৫,৫৩৬ টি (বা তার বেশি)। | | ভাষার সাপোর্ট | মূলত ইংরেজি ভাষা। | বিশ্বের সকল ভাষা। | | মেমোরি | মেমোরি কম খরচ হয় (১ বাইট)। | মেমোরি বেশি খরচ হয় (২ বাইট)। |

সংক্ষিপ্ত সারাংশ (Quick Revision)

রিভিশন চেকলিস্ট:
- BCD: সংখ্যা পদ্ধতি নয়, দশমিকের বাইনারি কোড। ৪ বিট লাগে।
- ASCII: ৭ বা ৮ বিটের কোড। ইংরেজি ভাষার জন্য আদর্শ। A=65, a=97, 0=48।
- EBCDIC: ৮ বিটের কোড। IBM মেইনফ্রেমে ব্যবহৃত হয়।
- Unicode: ১৬ বিটের কোড। বিশ্বের সকল ভাষার জন্য।
- প্যারিটি বিট: ভুল সংশোধনের জন্য ব্যবহৃত অতিরিক্ত ১টি বিট।

পরীক্ষার টিপস (Exam Tip):
সৃজনশীল প্রশ্নে যদি "বিশ্বের সকল ভাষাকে কম্পিউটারে ব্যবহারের উপযোগী কোড" নিয়ে উদ্দীপক থাকে, তবে চোখ বন্ধ করে ইউনিকোড নিয়ে লিখবে। আর যদি পার্থক্য লিখতে বলে, তবে অবশ্যই 'বিটের সংখ্যা', 'মোট চিহ্ন সংখ্যা' এবং 'ব্যবহার'—এই তিনটি পয়েন্ট উল্লেখ করবে।

পরিভাষা (Glossary)

পরিভাষা (Term) সংজ্ঞা (Definition)
এনকোডিং (Encoding) মানুষের ভাষাকে কম্পিউটারের বোধগম্য যান্ত্রিক ভাষায় রূপান্তরের প্রক্রিয়া।
ডিকোডিং (Decoding) কম্পিউটারের যান্ত্রিক ভাষাকে মানুষের বোধগম্য ভাষায় রূপান্তরের প্রক্রিয়া।
আলফানিউমেরিক কোড যে কোড দ্বারা অক্ষর, অংক এবং বিভিন্ন গাণিতিক ও বিশেষ চিহ্ন প্রকাশ করা যায়।
প্যারিটি বিট ডেটা আদান-প্রদানে ভুল সনাক্ত করার জন্য যুক্ত অতিরিক্ত বিট।
বিট (Bit) বাইনারি ডিজিট (0 বা 1)।
অবৈধ কোড (Invalid Code) BCD-তে ১০১০ থেকে ১১১১ পর্যন্ত ৬টি অব্যবহৃত বিন্যাস।

অনুশীলনের প্রশ্ন

সৃজনশীল প্রশ্ন

সৃজনশীল প্রশ্ন ১

সুমি তার কম্পিউটারের কিবোর্ডে 'A' বাটনটি প্রেস করল। আইসিটি শিক্ষক ক্লাসে বললেন, "কিবোর্ড থেকে সিপিইউতে সংকেত যাওয়ার জন্য এক ধরনের কোডিং ব্যবস্থা ব্যবহৃত হয়, যা ইংরেজি ভাষার জন্য বেশ জনপ্রিয়। আবার বাংলা বা অন্যান্য ভাষায় লেখার জন্য বর্তমানে ভিন্ন একটি কোডিং ব্যবস্থা চালু হয়েছে, যা বিশ্বের সকল ভাষাকে অন্তর্ভুক্ত করে।"

ক) কোড কী?
খ) BCD কোড ও বাইনারি সংখ্যার মধ্যে পার্থক্য লিখ।
গ) উদ্দীপকে শিক্ষকের ইঙ্গিত করা প্রথম কোডিং ব্যবস্থাটির (ASCII) গঠন বর্ণনা কর।
ঘ) "উদ্দীপকের দ্বিতীয় কোডিং ব্যবস্থাটি (Unicode) বর্তমান বিশ্বে অদ্বিতীয়" – উক্তিটি বিশ্লেষণ কর।

উত্তর

(ক) কম্পিউটার সিস্টেমে ব্যবহৃত প্রতিটি বর্ণ, অংক বা বিশেষ চিহ্নকে আলাদাভাবে সিপিইউ-কে বোঝানোর জন্য বিট (0 ও 1) এর সমন্বয়ে যে অদ্বিতীয় সংকেত তৈরি করা হয়, তাকে কোড বলে।

(খ) BCD কোড ও বাইনারি সংখ্যার মধ্যে প্রধান পার্থক্যগুলো হলো:
১. সংজ্ঞা: BCD (Binary Coded Decimal) হলো দশমিক সংখ্যার প্রতিটি অংককে পৃথকভাবে ৪-বিট বাইনারি দ্বারা প্রকাশ করার পদ্ধতি। অন্যদিকে, বাইনারি সংখ্যা হলো একটি পজিশনাল সংখ্যা পদ্ধতি যার ভিত্তি ২।
২. বিট সংখ্যা: BCD তে প্রতিটি দশমিক অংকের জন্য ফিক্সড ৪টি বিট লাগে। কিন্তু বাইনারি সংখ্যায় মান অনুযায়ী বিট সংখ্যা নির্ধারিত হয়। যেমন: (12)₁₀ এর BCD মান (0001 0010)BCD যা ৮ বিটের, কিন্তু বাইনারি মান (1100)₂ যা ৪ বিটের।
৩. ব্যবহার: BCD মূলত ইনপুট/আউটপুট ডিভাইসে দশমিক সংখ্যা প্রদর্শনে ব্যবহৃত হয়, গাণিতিক হিসাবের জন্য সরাসরি ব্যবহৃত হয় না। বাইনারি সংখ্যা কম্পিউটারের গাণিতিক ও যৌক্তিক কাজে ব্যবহৃত হয়।

(গ) উদ্দীপকে শিক্ষকের ইঙ্গিত করা প্রথম কোডিং ব্যবস্থাটি হলো ASCII (American Standard Code for Information Interchange)। নিচে এর গঠন বর্ণনা করা হলো:

ASCII বর্তমানে বহুল প্রচলিত একটি আলফানিউমেরিক কোড। এটি দুই ধরনের হয়ে থাকে: ASCII-7 এবং ASCII-8।
১. ASCII-7: এটি ৭ বিটের কোড। এর মাধ্যমে ২⁷ বা ১২৮টি অদ্বিতীয় চিহ্নকে নির্দিষ্ট করা যায়। এর প্রথম ৩টি বিটকে 'জোন বিট' (Zone bit) এবং শেষের ৪টি বিটকে 'সংখ্যাসূচক বিট' (Numeric bit) বলা হয়। বাম দিক থেকে একটি প্যারিটি বিট যোগ করে একে ৮ বিট পূর্ণ করা হয়।
২. ASCII-8: এটি ৮ বিটের কোড। এর মাধ্যমে ২⁸ বা ২৫৬টি চিহ্নকে নির্দিষ্ট করা যায়। এর বাম দিকের প্রথম বিটটি প্যারিটি বিট হিসেবে ব্যবহৃত হয় না, বরং এটি এক্সটেন্ডেড ক্যারেক্টার সেটের জন্য ব্যবহৃত হয়। বাকি ৭টি বিট আগের মতোই থাকে।

'A' বর্ণটির ASCII মান হলো ৬৫, যার বাইনারি (১০০০০০১)। এই কোডটি মূলত ইংরেজি বর্ণমালা, সংখ্যা এবং কিছু বিশেষ চিহ্নের জন্য ব্যবহৃত হয়।

(ঘ) উদ্দীপকের দ্বিতীয় কোডিং ব্যবস্থাটি হলো ইউনিকোড (Unicode)। বর্তমান বিশ্বে এটি অদ্বিতীয় ও সর্বজনীন হওয়ার কারণ নিচে বিশ্লেষণ করা হলো:

  1. ভাষাভুক্তি: ইউনিকোড বা Universal Code বিশ্বের ছোট-বড় সকল ভাষার বর্ণ ও চিহ্নকে কম্পিউটারের কোডভুক্ত করেছে। যেখানে ASCII শুধুমাত্র ইংরেজি ও ল্যাটিন বর্ণের মধ্যে সীমাবদ্ধ ছিল, সেখানে ইউনিকোড বাংলা, আরবি, চাইনিজ, জাপানিজসহ বিশ্বের প্রায় সকল লিখিত ভাষাকে সমর্থন করে।

  2. বিট ও ধারণক্ষমতা: ইউনিকোড মূলত ১৬ বিটের (২ বাইট) কোড। ফলে এটি দিয়ে ২¹⁶ বা ৬৫,৫৩৬টি অদ্বিতীয় চিহ্নকে নির্দিষ্ট করা যায়। বর্তমানে এর ৩২ বিট সংস্করণও রয়েছে, যা প্রায় ৪ বিলিয়ন ক্যারেক্টার সমর্থন করতে পারে। এই বিশাল ধারণক্ষমতার কারণেই এটি সকল ভাষাকে স্থান দিতে পেরেছে।

  3. মেমোরি অপচয় রোধ: যদিও ইউনিকোড ASCII এর চেয়ে বেশি মেমোরি নেয় (প্রতি ক্যারেক্টারে ২ বাইট), তবুও এটি বিভিন্ন ভাষার জন্য আলাদা আলাদা কোড পেজ ব্যবহারের জটিলতা দূর করেছে। আগে ভিন্ন ভাষার জন্য ভিন্ন সফটওয়্যার লাগত, এখন ইউনিকোড সমর্থিত একটি সফটওয়্যার দিয়েই সব ভাষায় কাজ করা যায়।

  4. অপারেটিং সিস্টেম সাপোর্ট: বর্তমানের আধুনিক সকল অপারেটিং সিস্টেম (উইন্ডোজ, ম্যাক, লিনাক্স, অ্যান্ড্রয়েড) ইউনিকোড ডিফল্টভাবে সমর্থন করে। ফলে বাংলা বা অন্য ভাষায় কন্টেন্ট তৈরি ও আদান-প্রদান সহজ হয়েছে।

পরিশেষে বলা যায়, বিশ্বের সকল মানুষের ভাষাকে প্রযুক্তির ছাতার নিচে আনার ক্ষমতার কারণেই ইউনিকোড বর্তমান বিশ্বে অদ্বিতীয় এবং জনপ্রিয়।


সৃজনশীল প্রশ্ন ২

শ্রেণিকক্ষে শিক্ষক (৭৫)₁₀ সংখ্যাটি বোর্ডে লিখলেন। তিনি দুই ছাত্র, রফিক ও শফিককে সংখ্যাটি কম্পিউটারের ভাষায় রূপান্তর করতে বললেন। রফিক সংখ্যাটিকে BCD কোডে এবং শফিক বাইনারি সংখ্যায় রূপান্তর করল। শিক্ষক লক্ষ্য করলেন, দুজনের ফলাফলে বিট সংখ্যার ভিন্নতা রয়েছে।

ক) EBCDIC এর পূর্ণরূপ কী?
খ) অ্যাসকি-৭ (ASCII-7) এবং অ্যাসকি-৮ (ASCII-8) এর মধ্যে পার্থক্য লিখ।
গ) উদ্দীপকের সংখ্যাটির ক্ষেত্রে রফিক ও শফিকের প্রাপ্ত ফলাফলের তুলনা কর।
ঘ) "সকল কোডই বাইনারি সংখ্যা, কিন্তু সকল বাইনারি সংখ্যা কোড নয়" – উদ্দীপকের আলোকে উক্তিটি মূল্যায়ন কর।

উত্তর

(ক) EBCDIC এর পূর্ণরূপ হলো Extended Binary Coded Decimal Interchange Code

(খ) অ্যাসকি-৭ এবং অ্যাসকি-৮ এর মধ্যে পার্থক্য:
১. বিট সংখ্যা: ASCII-7 এ ৭টি বিট ব্যবহৃত হয় (১২৮টি ক্যারেক্টার), আর ASCII-8 এ ৮টি বিট ব্যবহৃত হয় (২৫৬টি ক্যারেক্টার)।
২. প্যারিটি বিট: ASCII-7 এ ডেটা ট্রান্সমিশনের সময় বামে একটি প্যারিটি বিট যোগ করে ৮ বিট পূর্ণ করা হয়। ASCII-8 এ ৮ম বিটটি নিজেই ক্যারেক্টার কোডিংয়ের অংশ হিসেবে ব্যবহৃত হয় (এক্সটেন্ডেড সেট), যা আরও ১২৮টি অতিরিক্ত চিহ্ন (যেমন গ্রাফিক্স সিম্বল, গাণিতিক চিহ্ন) প্রকাশ করতে পারে।

(গ) উদ্দীপকের সংখ্যাটি হলো (৭৫)₁₀।

রফিকের রূপান্তর (BCD কোড):
BCD কোডে দশমিক সংখ্যার প্রতিটি অংককে পৃথকভাবে ৪ বিটের বাইনারি মান দিয়ে প্রকাশ করা হয়।
৭ = ০১১১
৫ = ০১০১
সুতরাং, (৭৫)₁₀ এর BCD মান = (০১১১ ০১০১)BCD
এখানে মোট বিট সংখ্যা = ৮টি।

শফিকের রূপান্তর (বাইনারি সংখ্যা):
(৭৫)₁₀ কে ২ দিয়ে ভাগ করে বাইনারিতে রূপান্তর করা হয়:
৭৫ ÷ ২ = ৩৭, ভাগশেষ ১
৩৭ ÷ ২ = ১৮, ভাগশেষ ১
১৮ ÷ ২ = ৯, ভাগশেষ ০
৯ ÷ ২ = ৪, ভাগশেষ ১
৪ ÷ ২ = ২, ভাগশেষ ০
২ ÷ ২ = ১, ভাগশেষ ০
১ ÷ ২ = ০, ভাগশেষ ১
নিচ থেকে উপরে সাজালে পাই: (১০০১০১১)₂
এখানে মোট বিট সংখ্যা = ৭টি।

তুলনা: রফিকের BCD কোডে ৮টি বিট প্রয়োজন হয়েছে, কিন্তু শফিকের বাইনারি রূপান্তরে মাত্র ৭টি বিট লেগেছে। অর্থাৎ, সমপরিমাণ মানের জন্য BCD কোড সাধারণ বাইনারি সংখ্যার চেয়ে বেশি মেমোরি জায়গা দখল করে।

(ঘ) উদ্দীপকের আলোকে "সকল কোডই বাইনারি সংখ্যা, কিন্তু সকল বাইনারি সংখ্যা কোড নয়" উক্তিটি যথার্থ। নিচে মূল্যায়ন করা হলো:

  1. কোড এবং বাইনারি: কম্পিউটারে ব্যবহৃত সকল কোড (যেমন BCD, ASCII, Unicode) শেষ পর্যন্ত ০ এবং ১ এর মাধ্যমেই প্রকাশ করা হয়। তাই কাঠামোগতভাবে সকল কোডই বাইনারি নম্বরের মতো দেখায়। রফিকের BCD মান (০১১১ ০১০১) আদতে একটি বাইনারি সিকোয়েন্স।

  2. মান বনাম উপস্থাপনা: শফিকের করা বাইনারি রূপান্তর (১০০১০১১) হলো ৭৫ সংখ্যার প্রকৃত গাণিতিক মান। এটি দিয়ে সরাসরি যোগ-বিয়োগ করা সম্ভব। এটি একটি বিশুদ্ধ বাইনারি সংখ্যা।
    অন্যদিকে, রফিকের BCD (০১১১ ০১০১) হলো ৭৫ এর একটি 'কোডেড' রূপ বা উপস্থাপনা। এটি গাণিতিক মানের চেয়ে দশমিক অংকগুলোকে চেনার জন্য ব্যবহৃত হয়।

  3. সীমাবদ্ধতা ও সংজ্ঞা: BCD তে ১০১০ থেকে ১১১১ পর্যন্ত (১০-১৫) কম্বিনেশনগুলো অগ্রহণযোগ্য বা 'অবৈধ'। অর্থাৎ, ১৬টি সম্ভাব্য ৪-বিট বাইনারি বিন্যাসের মধ্যে ৬টি BCD তে কোড হিসেবে গণ্য নয়। অথচ বাইনারি সংখ্যা পদ্ধতিতে ৪ বিটের যেকোনো মান (যেমন ১১০০ বা ১২) বৈধ সংখ্যা।

সুতরাং, সকল কোডকেই (যেমন BCD) বাইনারি অংক ০ ও ১ দিয়ে প্রকাশ করা হয় বলে তারা বাইনারি সংখ্যা পরিবারের অন্তর্ভুক্ত। কিন্তু সকল বাইনারি বিন্যাস (যেমন ১১০০) কোনো নির্দিষ্ট কোডিং সিস্টেমে (যেমন BCD) বৈধ কোড নাও হতে পারে। আবার বাইনারি সংখ্যা হলো মানের প্রকাশ, আর কোড হলো চিহ্নের প্রকাশ। তাই বলা যায়, উক্তিটি সঠিক।

এমসিকিউ

১। BCD কোডের পূর্ণরূপ কী?

ক) Binary Coded Digit
খ) Binary Coded Decimal
গ) Bit Coded Decimal
ঘ) Byte Coded Decimal

সঠিক উত্তর: খ) Binary Coded Decimal

ব্যাখ্যা: BCD এর পূর্ণরূপ হলো Binary Coded Decimal। এই পদ্ধতিতে দশমিক সংখ্যার প্রতিটি অংককে সমতুল্য ৪-বিট বাইনারি দ্বারা প্রতিস্থাপন করা হয়।


২। (29)₁₀ সংখ্যাটির BCD কোড কোনটি?

ক) 0010 1001
খ) 1001 0010
গ) 0010 1000
ঘ) 11101

সঠিক উত্তর: ক) 0010 1001

ব্যাখ্যা: ২ এর ৪-বিট বাইনারি ০০১০ এবং ৯ এর ৪-বিট বাইনারি ১০০১। পাশাপাশি বসালে হয় ০০১০ ১০০১।


৩। BCD কোডে এক বাইটে কয়টি দশমিক অংক কোড করা যায়?

ক) ১টি
খ) ২টি
গ) ৩টি
ঘ) ৪টি

সঠিক উত্তর: খ) ২টি

ব্যাখ্যা: ১ বাইট = ৮ বিট। BCD তে ১টি অংকের জন্য ৪ বিট লাগে। তাই ৮ বিটে (৮÷৪) = ২টি দশমিক অংক কোড করা সম্ভব।


৪। নিচের কোনটি অ্যাসকি (ASCII) কোডের বৈশিষ্ট্য?

ক) এটি ৪ বিটের কোড
খ) এটি শুধুমাত্র সংখ্যার জন্য ব্যবহৃত হয়
গ) এটি ৭ বা ৮ বিটের হতে পারে
ঘ) এটি ইউনিকোডের চেয়ে বেশি মেমোরি নেয়

সঠিক উত্তর: গ) এটি ৭ বা ৮ বিটের হতে পারে

ব্যাখ্যা: ASCII কোড দুই ধরনের হয়—ASCII-7 (৭ বিট) এবং ASCII-8 (৮ বিট)। এটি আলফানিউমেরিক কোড।


৫। ইউনিকোড (Unicode) এর মূল সুবিধা কোনটি?

ক) কম মেমোরি প্রয়োজন হয়
খ) বিশ্বের সকল ভাষার বর্ণ সমর্থন করে
গ) শুধুমাত্র ইংরেজি ভাষার জন্য তৈরি
ঘ) এটি ৪ বিটের কোড

সঠিক উত্তর: খ) বিশ্বের সকল ভাষার বর্ণ সমর্থন করে

ব্যাখ্যা: ইউনিকোড (Universal Code) বিশ্বের ছোট-বড় সকল ভাষাকে কম্পিউটারে ব্যবহারের জন্য তৈরি করা হয়েছে। এটি ১৬ বিট বা তার বেশি হতে পারে।


৬। 'A' বর্ণটির ASCII মান (65)₁₀ হলে, 'C' এর মান কত?

ক) 66
খ) 67
গ) 68
ঘ) 97

সঠিক উত্তর: খ) 67

ব্যাখ্যা: ASCII টেবিলে ইংরেজি বর্ণমালা ক্রমানুসারে থাকে। A=65, B=66, সুতরাং C=67।


৭। EBCDIC কোড কত বিটের?

ক) ৪ বিট
খ) ৮ বিট
গ) ১৬ বিট
ঘ) ৩২ বিট

সঠিক উত্তর: খ) ৮ বিট

ব্যাখ্যা: EBCDIC (Extended Binary Coded Decimal Interchange Code) একটি ৮ বিটের কোড, যা ২৫৬টি ভিন্ন চিহ্ন প্রকাশ করতে পারে। এটি মেইনফ্রেম কম্পিউটারে ব্যবহৃত হয়।


৮। কম্পিউটার সিস্টেমে ডেটা স্থানান্তরের জন্য কোনটি বেশি জনপ্রিয়?

ক) BCD
খ) ASCII
গ) EBCDIC
ঘ) Gray Code

সঠিক উত্তর: খ) ASCII

ব্যাখ্যা: মাইক্রোকম্পিউটার ও ডেটা কমিউনিকেশনে টেক্সট ডেটা আদান-প্রদানের জন্য ASCII কোড সর্বাধিক ব্যবহৃত ও জনপ্রিয়।


৯। ইউনিকোড শনাক্তকারী বিটের সংখ্যা কত?

ক) ৮
খ) ১৬
গ) ৩২
ঘ) ৬৪

সঠিক উত্তর: খ) ১৬

ব্যাখ্যা: ইউনিকোডের আদি ও বহুল ব্যবহৃত সংস্করণটি ১৬ বিটের (Unicode Standard)। ফলে এটি ২¹⁶ = ৬৫,৫৩৬টি চিহ্ন অদ্বিতীয়ভাবে শনাক্ত করতে পারে।


১০। নিচের কোনটি আলফানিউমেরিক কোড নয়?

ক) ASCII
খ) EBCDIC
গ) Unicode
ঘ) BCD

সঠিক উত্তর: ঘ) BCD

ব্যাখ্যা: BCD শুধুমাত্র দশমিক সংখ্যা (০-৯) কোড করার জন্য ব্যবহৃত হয়। এতে অক্ষর (A-Z) বা বিশেষ চিহ্ন থাকে না। বাকি সবগুলো আলফানিউমেরিক।


১১। অ্যাসকি-৭ (ASCII-7) এ মোট কতটি অদ্বিতীয় চিহ্ন নির্দিষ্ট করা যায়?

ক) ৬৪
খ) ১২৮
গ) ২৫৬
ঘ) ৫১২

সঠিক উত্তর: খ) ১২৮

ব্যাখ্যা: ASCII-7 এ ৭টি বিট থাকে। ২⁷ = ১২৮। তাই ১২৮টি চিহ্ন নির্দিষ্ট করা যায়।


১২। ইউনিকোড কনসোর্টিয়াম কোন সালে গঠিত হয়?

ক) ১৯৯০
খ) ১৯৯১
গ) ১৯৯৫
ঘ) ২০০০

সঠিক উত্তর: খ) ১৯৯১

ব্যাখ্যা: অ্যাপল কম্পিউটার এবং জেরক্স কর্পোরেশনের একদল প্রকৌশলী ১৯৯১ সালে ইউনিকোড কনসোর্টিয়াম গঠন করেন।


১৩। নিচের কোনটি কোডিং সিস্টেমের অন্তর্ভুক্ত?
i. BCD
ii. ASCII
iii. EBCDIC

নিচের কোনটি সঠিক?
ক) i ও ii
খ) i ও iii
গ) ii ও iii
ঘ) i, ii ও iii

সঠিক উত্তর: ঘ) i, ii ও iii

ব্যাখ্যা: BCD, ASCII এবং EBCDIC—তিনটিই কম্পিউটারে বহুল ব্যবহৃত কোডিং পদ্ধতি।


১৪। ইউনিকোড ব্যবহারের ফলে—
i. সকল ভাষার জন্য একক কোড ব্যবহার সম্ভব হয়েছে
ii. মেমোরি অপচয় রোধ হয়েছে (অ্যাসকির তুলনায়)
iii. ডেটা আদান-প্রদান সহজ হয়েছে

নিচের কোনটি সঠিক?
ক) i ও ii
খ) i ও iii
গ) ii ও iii
ঘ) i, ii ও iii

সঠিক উত্তর: খ) i ও iii

ব্যাখ্যা: ইউনিকোড সকল ভাষার জন্য একক মানদণ্ড তৈরি করেছে এবং ডেটা আদান-প্রদান সহজ করেছে। তবে এটি ১৬ বিটের হওয়ায় অ্যাসকি (৮ বিট) এর তুলনায় বেশি মেমোরি জায়গা নেয়, তাই 'মেমোরি অপচয় রোধ হয়েছে' কথাটি অ্যাসকির সাপেক্ষে ভুল।


১৫। (15)₁₀ এর BCD কোড কোনটি?

ক) 0001 0101
খ) 1111
গ) 0001 1001
ঘ) 1000 1000

সঠিক উত্তর: ক) 0001 0101

ব্যাখ্যা: ১ = ০০০১ এবং ৫ = ০১০১। সুতরাং ১৫ = ০০০১ ০১০১। অপশন (খ) ১১১১ হলো ১৫ এর বাইনারি মান, BCD নয়।


১৬। বাংলা বর্ণমালা কম্পিউটারে ব্যবহারের জন্য কোন কোড অপরিহার্য?

ক) ASCII
খ) BCD
গ) Unicode
ঘ) Gray Code

সঠিক উত্তর: গ) Unicode

ব্যাখ্যা: বাংলা ভাষার বর্ণমালা ASCII বা BCD তে নেই। একমাত্র ইউনিকোডেই বাংলা বর্ণমালা অন্তর্ভুক্ত আছে।


১৭। BCD কোডের বিটগুলোর মধ্যে কোনটি সঠিক?

ক) ৮-৪-২-১
খ) ৪-২-১
গ) ১৬-৮-৪-২
ঘ) ১-২-৪-৮

সঠিক উত্তর: ক) ৮-৪-২-১

ব্যাখ্যা: BCD কোড প্রকাশ করার জন্য সাধারণত 8421 ওজন (weight) পদ্ধতি ব্যবহার করা হয়। এটি ন্যাচারাল BCD কোড।


১৮। কিবোর্ডের 'Space' বারের ASCII মান কত?

ক) 10
খ) 32
গ) 48
ঘ) 65

সঠিক উত্তর: খ) 32

ব্যাখ্যা: ASCII টেবিলে স্পেস বা ফাঁকা জায়গার মান হলো ৩২ (দশমিক)।


১৯। নিচের উদ্দীপকটি পড় এবং ১৯ ও ২০ নং প্রশ্নের উত্তর দাও:
রিমন একটি টেক্সট ফাইল তৈরি করল যেখানে ইংরেজি ও বাংলা উভয় ভাষার লেখা আছে। সে ফাইলটি বন্ধুর কম্পিউটারে পাঠাল, কিন্তু বন্ধুর কম্পিউটারে বাংলা লেখাগুলো ঠিকমতো দেখাচ্ছে না, প্রশ্নবোধক চিহ্ন আসছে।

১৯। রিমনের ব্যবহৃত কোডটি হতে পারে—
i. ASCII
ii. Unicode
iii. EBCDIC

নিচের কোনটি সঠিক?
ক) i
খ) ii
গ) i ও iii
ঘ) ii ও iii

সঠিক উত্তর: খ) ii

ব্যাখ্যা: যেহেতু ফাইলে বাংলা লেখা আছে, তাই রিমন অবশ্যই ইউনিকোড ব্যবহার করেছে। ASCII বা EBCDIC তে বাংলা লেখা সম্ভব নয়।


২০। বন্ধুর কম্পিউটারে সমস্যা হওয়ার সম্ভাব্য কারণ কী?
i. অপারেটিং সিস্টেমে ফন্ট সাপোর্ট নেই
ii. ফাইলটি করাপ্টেড হয়েছে
iii. বন্ধু ASCII ভিত্তিক সফটওয়্যার ব্যবহার করছে যা ইউনিকোড চেনে না

নিচের কোনটি সঠিক?
ক) i ও ii
খ) i ও iii
গ) ii ও iii
ঘ) i, ii ও iii

সঠিক উত্তর: খ) i ও iii

ব্যাখ্যা: ইউনিকোড টেক্সট দেখার জন্য অপারেটিং সিস্টেমে সংশ্লিষ্ট ভাষার ফন্ট এবং সফটওয়্যারের ইউনিকোড সাপোর্ট থাকা প্রয়োজন।


২১। 4-bit BCD কোডের মাধ্যমে সর্বোচ্চ কতটি ভিন্ন চিহ্ন প্রকাশ করা সম্ভব?

ক) ১০টি
খ) ১৬টি
গ) ৮টি
ঘ) ৪টি

সঠিক উত্তর: ক) ১০টি

ব্যাখ্যা: যদিও ৪ বিটে ১৬টি কম্বিনেশন হয়, কিন্তু BCD তে শুধুমাত্র ০-৯ পর্যন্ত ১০টি অংক বৈধ। ১০-১৫ পর্যন্ত কম্বিনেশনগুলো অবৈধ। তাই ১০টি ভিন্ন চিহ্ন (অংক) প্রকাশ করা যায়।


২২। BCD এবং বাইনারি সংখ্যার মধ্যে মূল পার্থক্য কোথায়?

ক) বিট সংখ্যায়
খ) ওজনে
গ) উপযোগিতায় ও উপস্থাপনায়
ঘ) উপরের সবগুলো

সঠিক উত্তর: ঘ) উপরের সবগুলো

ব্যাখ্যা: বিট সংখ্যা (BCD তে বেশি লাগে), ওজন (BCD তে প্রতি ৪ বিট আলাদা), এবং ব্যবহার (BCD ডিসপ্লেতে, বাইনারি গাণিতিক কাজে)—সব ক্ষেত্রেই পার্থক্য আছে।


২৩। কোন কোডটি আইবিএম (IBM) মেইনফ্রেম কম্পিউটারে বেশি ব্যবহৃত হয়?

ক) ASCII
খ) Unicode
গ) EBCDIC
ঘ) BCD

সঠিক উত্তর: গ) EBCDIC

ব্যাখ্যা: EBCDIC কোডটি আইবিএম তৈরি করেছিল তাদের মেইনফ্রেম কম্পিউটারের জন্য।


২৪। '0' (শূন্য) এর ASCII মান কত?

ক) 0
খ) 32
গ) 48
ঘ) 64

সঠিক উত্তর: গ) 48

ব্যাখ্যা: ASCII টেবিলে '0' ক্যারেক্টারের মান ৪৮। '1' হলো ৪৯, এভাবে '9' পর্যন্ত যায়।


২৫। ইউনিকোডের প্রথম ২৫৬টি কোড কোন কোডের অনুরূপ?

ক) BCD
খ) EBCDIC
গ) ASCII-8 (Latin-1)
ঘ) Gray Code

সঠিক উত্তর: গ) ASCII-8 (Latin-1)

ব্যাখ্যা: সামঞ্জস্য বজায় রাখার জন্য ইউনিকোডের প্রথম ২৫৬টি ক্যারেক্টারকে ASCII-8 বা ISO Latin-1 এর হুবহু অনুরূপ রাখা হয়েছে।