অধ্যায়-৩

সংখ্যা পদ্ধতি


সংখ্যা পদ্ধতি ও আন্তঃ পদ্ধতি রূপান্তর প্রকৃয়া সম্পর্কে জ্ঞান লাভ করা ডিজিটাল ইলেকট্রনেক্সের প্রাথমিক জ্ঞানের অন্তর্ভূক্ত বিষয়। এই বিষয়ে জ্ঞান লাভ না করলে ডিজিটাল ইলেকট্রনিক্সের নানাবিধ গাণিতিক ও যৌক্তিক অপারেশন, কার্য প্রকৃয়া, নকশা প্রনয়নের কৌশল এবং উন্নয়ন কোন কিছুই সম্ভব নয়। তাই ইলেকট্রনিক্সের শিক্ষর্থীদের এই বিষয়ে জ্ঞানার্জন অতীব গুরুত্ত্বপূর্ণ।

সংখ্যা পদ্ধতি কি?

সংখ্যা পদ্ধতি হলো কোন সংখ্যাকে উপস্থাপন করার জন্য নির্দিষ্ট লিখিত রূপ বা পদ্ধতি যাতে কিছু সংখ্যক নির্দিষ্ট ‘সংখ্যা প্রতীক’ ব্যবহার করা হয় এবং এই সকল প্রতীকসমূহ হতে সুনির্দিষ্ট নিয়মে সজ্জিত একগুচ্ছ প্রতীক যা একটি নির্দিষ্ট সংখ্যা মান প্রকাশ করে। সংখ্যা প্রকাশের এরূপ নিয়ম, পদ্ধতি বা রীতিকে সংখ্যা পদ্ধতি বলা হয়। এক কথায়, কোন সংখ্যা প্রকাশের লিখিত পদ্ধতিকেই সংখ্যা পদ্ধতি বলা হয়ে থাকে। এই সকল ‘সংখ্যা প্রতীকগুলোকে’ আমরা ‘ডিজিট’ বা বাংলা ভাষায় ‘অংক’ বলে জানি।

সংখ্যা প্রকাশ করার ক্ষুদ্রতম প্রতীক হচ্ছে অংক। যেমন 1, 2, 3 আলাদা তিনটি অংক, এই তিনটি অংককে একত্রে সাজিয়ে পাই 312 তিনশত বারো, যা একটি নির্দিষ্ট সংখ্যা। আবার 1, 2 এবং 3 এদের প্রত্যেকের স্বতন্ত্র সাংখ্যিক মান আছে। এভাবে সংখ্যা পদ্ধতিতে বিভিন্ন অংককে নিয়ম মত সাজিয়ে বিভিন্ন সংখ্যা পাওয়া যায়। এ সকল সংখ্যাসমূহকে যোগ, বিয়োগ, গুণ, ভাগ ইত্যাদি গাণিতিক প্রকৃয়ার মাধ্যমে প্রয়োজনীয় গণনার কার্য সমাধা করা যায়।

অংক বা সংখ্যা প্রতীকের নিজস্ব মানঃ

প্রত্যেক সংখ্যা পদ্ধতিতে ব্যবহৃত অংকসমূহের অন্তর্গত প্রতিটি অংকের একটি করে নিজস্ব সংখ্যাগত মান রয়েছে। আবার এই সকল অংকসমূহ হতে একগুচ্ছ অংককে নিয়মানুযায়ী সাজিয়ে বিভিন্ন সংখ্যা তৈরী করা যায়। যেমনঃ ডেমিমেল বা দশমিক সংখ্যা পদ্ধতিতে মোট দশটি অংক রয়েছে, এরা হলো 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 এদের নিজস্ব মান নিম্নরূপঃ

0 এর নিজস্ব মান শূণ্য
1 এর নিজস্ব মান এক
2 এর নিজস্ব মান দুই
3 এর নিজস্ব মান তিন
4 এর নিজস্ব মান চার
5 এর নিজস্ব মান পাঁচ
6 এর নিজস্ব মান ছয়
7 এর নিজস্ব মান সাত
8 এর নিজস্ব মান আট
9 এর নিজস্ব মান নয়

আবার এই সকল অংকসমূহ হতে এক গুচ্ছ অংককে নিয়মানুযায়ী সাজিয়ে বিভিন্ন সংখ্যা তৈরী করা যায়। যেমনঃ 937 সংখ্যাটির মান নয়শত সায়ত্রিশ, 356 সংখ্যাটির মান তিনশত ছাপ্পান্ন ইত্যাদি।

সংখ্যা পদ্ধতির ভিত্তি (Radix or Base):

কোন সংখ্যা পদ্ধতির ভিত্তি হচ্ছে ঐ সংখ্যা পদ্ধতিতে ব্যবহৃত অংকসমূহ বা প্রতীকসমূহের মোট সংখ্যা। যেমন ডেসিম্যাল বা দশমিক পদ্ধতির ভিত্তি হচ্ছে 10, কারণ দশমিক সংখ্যা পদ্ধতিতে মোট দশটি অংক বা প্রতীক (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) রয়েছে। অনুরূপ বাইনারী সংখ্যা পদ্ধতির ভিত্তি 2, কারণ বাইনারী সংখ্যা পদ্ধতিতে মোট দুটি অংক বা প্রতীক (0, 1) রয়েছে। অকট্যাল সংখ্যা পদ্ধতির ভিত্তি 8, কারণ অকট্যাল সংখ্যা পদ্ধতিতে মোট আটটি অংক বা প্রতীক (0, 1, 2, 3, 4, 5, 6, 7) রয়েছে। হেক্সাডেসিম্যাল সংখ্যা পদ্ধতির ভিত্তি 16, কারণ হেক্সাডেসিম্যাল সংখ্যা পদ্ধতিতে মোট ষোলটি অংক বা প্রতীক (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F) রয়েছে।

অংক বা সংখ্যা প্রতীকের স্থানীয় মানঃ

যে কোন সংখ্যার অন্তর্গত ডিজিট বা অংকসমূহের অবস্থানগত মানকে স্থানীয় মান বলা হয়। ‘স্থানীয় মান’ সংখ্যা পদ্ধতির একটি বিশেষ রীতি/নিয়ম যার মাধ্যমে উচ্চতর সংখ্যাসমূহকে প্রকাশ করা যায়। ভিন্ন ভিন্ন সংখ্যা পদ্ধতির ক্ষেত্রে স্থানীয় মানের তারতম্য হয়। যেমন দশমিক সংখ্যা পদ্ধতিতে কোন সংখ্যার সর্ব ডানের অংকের মান নিজস্ব মানের একক বা এক গুণ, ডান দিক হতে দ্বিতীয় ঘরে অবস্থিত অংকের স্থানীয় মান নিজস্ব মানের দশ গুন, তৃতীয় ঘরে অবস্থিত অংকের স্থানীয় মান অংকটির নিজস্ব মানের একশত গুন, এভাবে প্রতিটি ঘরের স্থানীয় মান তার পূর্ববর্তী ঘরের স্থানীয় মানের দশগুন হারে বাড়তে থাকে, অর্থাত প্রকৃত কথা হলো অংক যত বামে যেতে থাকে তার স্থানীয় মান সংখ্যা পদ্ধতির ভিত্তি এর ঘাত অনুযায়ী বাড়তে থাকে।

দশমিক পদ্ধতির একটি উদাহরণঃ 953 সংখ্যাটিতে সর্ব ডানের অংক 3 এর স্থানীয় মান 3×100=3, আবার, 5 এর স্থানীয় মান 5×101=50 এবং 9 এর স্থানীয় মান 9×102=900, এভাবে সংখ্যাটির মান স্থানীয় মানসমূহের সমষ্টির সমান, 3+50+900=953 নয় শত তিপ্পান্ন।

বাইনারী পদ্ধতির একটি উদাহরণঃ 111 সংখ্যাটিতে সর্ব ডানের অংক 1 এর স্থানীয় মান 1×20=1, আবার মধ্যস্থিত 1 এর স্থানীয় মান 1×21=2 এবং সর্ব বামের 1 এর স্থানীয় মান 1×22=4, এভাবে সংখ্যাটির মান স্থানীয় মানসমূহের সমষ্টির সমান, 1+2+4=7 যা উপরোক্ত বাইনারী সংখ্যাটির দশমিক সমতূল্য মান।

কোন একটি সংখ্যার মান বের করার জন্য তিনটি তথ্য প্রয়োজন হয়ঃ
  1. সংখ্যাটিতে ব্যবহৃত অংকগুলির নিজস্ব মান
  2. ব্যবহৃত সংখ্যা পদ্ধতির ভিত্তি
  3. সংখ্যাটিতে ব্যবহৃত অংকগুলির স্থানীয় মান

একটি উদাহরণঃ

812 সংখ্যাটিতে ব্যবহৃত 8 প্রতীকটির নিজস্ব মান আট, 1 প্রতীকটির নিজস্ব  মান এক এবং 2 প্রতীকটির নিজস্ব মান দুই। এবার এদের স্থানীয় মান জেনে নিই। 8 অংকটি শতকের ঘরে অবস্থিত তাই এর মান 8×100=800, আবার 1 অংকটি দশকের ঘরে তাই এর মান 1×10=10 এবং সর্বশেষ 2 অংকটি এককের স্থানে তাই এর স্থানীয় মান 2×1=2 সুতরাং উপরোক্ত তিনটি তথ্যের আলোকে সংখ্যাটির মান 800+10+2=812 আটশত বারো।

কয় ধরণের সংখ্যা পদ্ধতি?

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

  1. বাইনারী সংখ্যা পদ্ধতি
  2. দশমিক/ডেসিম্যাল সংখ্যা পদ্ধতি
  3. অকট্যাল সংখ্যা পদ্ধতি
  4. হেক্সাডেসিম্যাল সংখ্যা পদ্ধতি

আমরা পরবর্তী পাঠে এই সকল সংখ্যা পদ্ধতিসমূহের পরিচয় এবং পরস্পরের মধ্যে রূপান্তরের প্রকৃয়া জানব।

দশমিক/ডেসিম্যাল সংখ্যা পদ্ধতি

প্রাত্যহিক বাস্তব জীবনে হিসাব নিকাশ করার জন্য আমরা যে সংখ্যা পদ্ধতি ব্যবহার করি তা দশমিক সংখ্যা পদ্ধতি। এর ভিত্তি 10 অর্থাত এই পদ্ধতিতে 0 হতে 9 পর্যন্ত মোট 10টি সংখ্যা প্রতীক রয়েছে। ডিজিটাল ইলেকট্রনিক্সের হিসাব নিকাশের সময় কখনো কখনো দশমিক সংখ্যার সাথে সাফিক্স হিসাবে এর ভিত্তি লিখে প্রকাশ করা হয়, এর মাধ্যমে বুঝা যায় সংখ্যাটি দশমিক সংখ্যা। যেমনঃ 934710 এখানে 9347 হলো ডেসিম্যাল সংখ্যা এবং 10 হলো এর ভিত্তি যার মাধ্যমে বুঝা যাচ্ছে সংখ্যাটি দশমিক পদ্ধতির সংখ্যা।

দ্বিমিক/বাইনারী সংখ্যা পদ্ধতি

এই সংখ্যা পদ্ধতির ভিত্তি 2 অর্থাত এই পদ্ধতিতে 0 এবং 1 মোট 2টি সংখ্যা প্রতীক রয়েছে। ডিজিটাল ইলেকট্রনিক্সের হিসাব নিকাশের সময় কখনো কখনো দ্বিমিক সংখ্যার সাথে সাফিক্স হিসাবে এর ভিত্তি লিখে প্রকাশ করা হয়, এর মাধ্যমে বুঝা যায় সংখ্যাটি দ্বিমিক সংখ্যা। যেমনঃ 1010012 এখানে 101001 হলো ডেসিম্যাল সংখ্যা এবং 2 হলো এর ভিত্তি যার মাধ্যমে বুঝা যাচ্ছে সংখ্যাটি দ্বিমিক বা বাইনারী পদ্ধতির সংখ্যা।

অকট্যাল সংখ্যা পদ্ধতি

এই সংখ্যা পদ্ধতির ভিত্তি 8 অর্থাত এই পদ্ধতিতে 0 হতে 7 পর্যন্ত মোট 8টি সংখ্যা প্রতীক রয়েছে। ডিজিটাল ইলেকট্রনিক্সের হিসাব নিকাশের সময় কখনো কখনো অকট্যাল সংখ্যার সাথে সাফিক্স হিসাবে এর ভিত্তি লিখে প্রকাশ করা হয়, এর মাধ্যমে বুঝা যায় সংখ্যাটি অকট্যাল সংখ্যা। যেমনঃ 7568 এখানে 756 হলো অকট্যাল সংখ্যা এবং 8 হলো এর ভিত্তি যার মাধ্যমে বুঝা যাচ্ছে সংখ্যাটি অকট্যাল পদ্ধতির সংখ্যা।

হেক্সাডেসিম্যাল সংখ্যা পদ্ধতি

এই সংখ্যা পদ্ধতির ভিত্তি 16 অর্থাত এই পদ্ধতিতে 0 হতে 9 পর্যন্ত মোট 10টি সংখ্যা প্রতীক এবং সেই সাথে A, B, C, D, E, F এই 6টি বর্ণ প্রতীক রয়েছে। ডিজিটাল ইলেকট্রনিক্সের হিসাব নিকাশের সময় কখনো কখনো হেক্সাডেসিম্যাল সংখ্যার সাথে সাফিক্স হিসাবে এর ভিত্তি লিখে প্রকাশ করা হয়, এর মাধ্যমে বুঝা যায় সংখ্যাটি হেক্সাডেসিম্যাল সংখ্যা। যেমনঃ 5C7F16 এখানে 5C7F হলো হেক্সাডেসিম্যাল সংখ্যা এবং 16 হলো এর ভিত্তি যার মাধ্যমে বুঝা যাচ্ছে সংখ্যাটি হেক্সাডেসিম্যাল পদ্ধতির সংখ্যা।

ভগ্নাংশ সংখ্যা মানঃ

প্রত্যেক সংখ্যা পদ্ধতিতে ঐ পদ্ধতির র‌্যাডিক্স পয়েন্ট দিয়ে ভগ্নাংশ মান প্রকাশ করা হয়। র‌্যাডিক্স পয়েন্টের (.) বাম পার্শ্বের অংশকে পূর্ণ সংখ্যা (Integer) এবং ডান পার্শ্বের অংশকে ভগ্নাংশ সংখ্যা বলা হয়। যেমন 56.95410 দশমিক সংখ্যাটিতে 56 হলো পূর্ণ সংখ্যা এবং মাঝখানে (.) হলো Radix Point দশমিক বিন্দু এবং ডান পার্শ্বে 954 হলো ভগ্নাংশ সংখ্যা। উল্লেখ্য যে পূর্ণ সংখ্যার ক্ষেত্রে অংকের অবস্থান দশমিক বিন্দু হতে বামে সরতে থাকলে তার স্থানীয় মান দশগুণ (Radix এর গুনিতক) হারে বাড়বে এবং ভগ্নাংশ সংখ্যার ক্ষেত্রে অংকের অবস্থান দশমিক বিন্দু হতে ডানে সরতে থাকলে তার স্থানীয় মান (Radix এর গুনিতক) দশ ভাগ হারে কমবে। অর্থাত দশমিক বিন্দুর ডানের ঘর দশ ভাগের এক ভাগ, তার ডানের ঘর একশত ভাগের এক ভাগ এবং তার ডানের ঘর এক হাজার ভারে এক ভাগ মান প্রকাশ করে।

 


 

রূপান্তর


সংখ্যাকে এক পদ্ধতি হতে অন্য পদ্ধতিতে পরিবর্তনকে সংখ্যা পদ্ধতির রূপান্তর বলা হয়। সংখ্যাসমূহ এক পদ্ধতি হতে অন্য পদ্ধতিতে রূপান্তর যোগ্য যেমনঃ ডেসিম্যাল পদ্ধতিতে 1110 সংখ্যাটির মান এগারো কিন্তু বাইনারীতে তা 10112। আবার বাইনারী পদ্ধতিতে 112 সংখ্যাটির মান ডেসিম্যলে 310 হবে। রূপান্তরের মাধ্যমে কোন সংখ্যার সংখ্যাগত মান পরিবর্তন হয় না শুধু পদ্ধতিগত উপস্থাপনা পরিবর্তন হয় মাত্র।

রূপান্তর কেন প্রয়োজন?

কম্পিউটার একটি জটিল ডিজিটাল বর্তনীর সমন্বয়। এই সকল বর্তনীসমূহ প্রোগ্রামের নির্দেশে বিভিন্ন গাণিতিক ও যৌক্তিক কার্য সম্পন্ন করে। কিন্তু এই সকল বর্তনীগুলিতে বাইনারী সংখ্যা পদ্ধতি ব্যবহার হয়, কম্পিউটার মানুষের ব্যবহার্য দশমিক সংখ্যা বোঝেনা তাই মানুষের বোধ্যগম্য সংখ্যাকে কম্পিউটারের নিকট গ্রহনযোগ্য করে তোলার জন্য দশমিক সংখ্যাকে বাইনারী সংখ্যায় রূপান্তরের প্রয়োজন হয়। আবার কম্পিউটারের বর্তনীতে মুহৃর্তের মধ্যে বহু সংখ্যক গাণিতিক ও যৌক্তিক কাজের শেষ ফলাফল তৈরী হয় বাইনারী সংখ্যায় এবং এই ফলাফল মানুষের সামনে হুবহু তুলে ধরলে মানুষের নিকট তা সহজে বোধগম্য হবেনা কারন মানুষ বাইনারী পদ্ধতিতে অভ্যস্থ নয়, তাই এখানে প্রয়োজন ফলাফলটিকে মানুষের সামনে উপস্থাপনের পূর্বে তা মানুষের বোধগম্য পদ্ধতি ডেসিম্যাল সংখ্যায় রূপান্তর করে উপস্থাপন করা। এছাড়া ডিজিটাল ইলেকট্রনিক্সের নকশা প্রনয়ন, বর্তনী গঠন ও নানাবিধ প্রয়োজনে সংখ্যা পদ্ধতি রূপান্তরের প্রয়োজন রয়েছে।

ডেসিম্যাল হতে বাইনারীতে রূপান্তরঃ

দশমিক পূর্ণ সংখ্যাকে বাইনারীতে রূপান্তরের জন্য ভাগফল 1 না হওয়া পর্যন্ত সংখ্যাটিকে ক্রমাগত 2 দ্বারা ভাগ করে প্রথম ভাগফল এবং প্রতিবারের ভাগশেষগুলিকে সাজিয়ে সংখ্যাটির সমতূল্য বাইনারী সংখ্যা পাওয়া যায়। যেমন 97 সংখ্যাটির বাইনারী সমতূল্য সংখ্যা নির্ণয়ের পদ্ধতি নিম্নরূপঃ

dtob

সুতরাং 9710 = 11000012

দশমিক ভগ্নাংশ সংখ্যাকে সমতূল্য বাইনারীতে রূপান্তরের জন্য গুনফল 1 না হওয়া পর্যন্ত ক্রমাগত সংখ্যাটিকে 2 দ্বারা গুণ করতে হবে। অবশেষে প্রাপ্ত সকল পূর্ণ সংখ্যগুলি পরপর সাজিয়ে সমতূল্য বাইনারী ভগ্নাংশ সংখ্যা পাওয়া যাবে। চিত্রের উদাহরণটি লক্ষ করুনঃ

fraction_num_position

সুতরাং 0.37510 = 0.0112

কোন দশমিক সংখ্যায় পূর্ণ এবং ভগ্নাংশ উভয় অংশ থাকলে পূর্ণ এবং ভগ্নাংশ উভয় অংশ আলাদা আলাদা ভাবে বাইনারীতে রূপান্তর করতে হবে। অতঃপর উভয় অংশের মাঝে বিন্দু/পয়েন্ট স্থাপন করে অংশ দুটিকে একত্রিত করতে হবে। যেমন 97.37510 সংখ্যাটিকে বাইনারীতে রূপান্তর করলে 1100001.0112 হবে।

অকট্যাল হতে বাইনারী রূপান্তরঃ

0 হতে 7 পর্যন্ত অকট্যাল অংকগুলিকে 3 বিট বাইনারী সংখ্যা দ্বারা প্রকাশ করা যায়। কাজেই কোন অকট্যাল সংখ্যার অংকগুলিকে তাদের নিজ নিজ স্থানে সমতূল্য 3বিটের বাইনারী সংখ্যা দ্বারা প্রতিস্থাপন করলে অকট্যাল সংখ্যাটির সমতূল্য বাইনারী সংখ্যা পাওয়া যায়। যেমন নিচের উদাহরণটি লক্ষ করুনঃ

octal_t_binary

অকট্যাল থেকে বাইনারী

উপরের চিত্রে 0 হতে 7 পর্যন্ত অকট্যাল অংকগুলির সমতূল্য 3 বিটের বাইনারী মান দেয়া হয়েছে এবং 257 এবং 227 দুটি অকট্যাল সংখ্যাকে বাইনারীতে রূপান্তর দেখানো হয়েছে। 257 সংখ্যাটির প্রতিটি অংকের 3 ডিজিট সমতূল্য বাইনারী মান পরস্পর সাজিয়ে পাই 010101111, যেহেতু সর্ব বামের শূণ্যের কোন মূল্য নেই তাই সংখ্যাটি হবে 10101111, সুতরাং 2578 = 101011112, অনুরূপভাবে 2278 = 100101112 হবে।

হেক্সাডেসিম্যাল হতে বাইনারী রূপান্তরঃ

1 হতে F পর্যন্ত হেক্সাডেসিম্যাল অংকগুলিকে 4 বিট বাইনারী সংখ্যা দ্বারা প্রকাশ করা যায়, এবং কোন হেক্সাডেসিম্যাল সংখ্যার অংকগুলিকে তাদের নিজ নিজ স্থানে সমতূল্য 4বিটের বাইনারী সংখ্যা দ্বারা প্রতিস্থাপন করলে হেক্সাডেসিম্যাল সংখ্যাটির সমতূল্য বাইনারী সংখ্যা পাওয়া যায়। যেমন নিচের উদাহরণটি লক্ষ করুনঃ

h_t_b

উপরের চিত্রে 0 হতে F পর্যন্ত হেক্সাডেসিম্যাল অংকগুলির সমতূল্য 4 বিটের বাইনারী মান দেয়া হয়েছে এবং 2A7 এবং 227 দুটি হেক্সাডেসিম্যাল সংখ্যাকে বাইনারীতে রূপান্তর দেখানো হয়েছে। 2A7 সংখ্যাটির প্রতিটি অংকের 4 ডিজিটের সমতূল্য বাইনারী মান পরস্পর সাজিয়ে পাই 001010100111, যেহেতু সর্ব বামের শূণ্যের কোন মূল্য নেই তাই সংখ্যাটি হবে 1010100111, সুতরাং 2A716 = 10101001112, অনুরূপভাবে 2278 = 10001001112 হবে।

ডেসিম্যাল হতে অকট্যাল রূপান্তরঃ

দশমিক সংখ্যাকে পর্যায়ক্রমে 8 দিয়ে ভাগ করে ভাগশেষগুলিকে নিয়মানুযায়ী সাজিয়ে দশমিকসংখ্যাটির সমতূল্য অকট্যাল সংখ্যা পাওয়া যায়। ভাগ করার সময় ভাগফল 8 অপেক্ষা কম না হওয়া পর্যন্ত পর্যায়ক্রমিক ভাগ প্রকৃয়া চালাতে হয়। চিত্রে 469 দশমিক সংখ্যাটির অকট্যাল সমতূল্য মান নির্নয় করা হয়েছে। এখানে দশমিক সংখ্যাটিকে অকট্যাল সংখ্যার ভিত্তি 8 দ্বারা অনবরত ভাগ করা হয়েছে। ভাগফল 8 অপেক্ষা কম হলে আর ভাগ করার প্রয়োজন নেই। এবার শেষ ভাগফলকে বামে রেখে পূর্ববর্তী ভাগশেষগুলিকে ডানদিকে পর্যায়ক্রমে সাজিয়ে প্রাপ্ত 725 সংখ্যাটি অকট্যাল সমতূল্য সংখ্যা হবে।

d_t_oct

সুতরাং 46910 = 7258

বাইনারী হতে অকট্যাল রূপান্তরঃ

বাইনারী সংখ্যাটির ডান দিক হতে শুরু করে বাম দিকে তিনটি করে ডিজিট নিয়ে একটি করে গ্রুপ তৈরী করতে হবে। সর্ব বামের গ্রুপে তিন ডিজিট পূর্ণ না হলে শূণ্য (0) দ্বারা পূর্ণ করতে হবে। এভাবে একটি বাইনারী সংখ্যাতে কয়েকটি গ্রুপ হতে পারে। এবার প্রত্যেকটি বাইনারী গ্রুপের সমতূল্য ডেসিম্যাল মান নিজ নিজ স্থানে বসিয়ে সমতূল্য অকট্যাল সংখ্যা পাওয়া যায়। চিত্রের উদাহরণটি লক্ষনীয়ঃ

1111011 বাইনারী সংখ্যাটিকে ডান দিক হতে তিনটি করে ডিজিট নিয়ে একটি করে গ্রুপ তৈরী করা হয়েছে। সর্ব বামের গ্রুপে তিন ডিজিট পূর্ণ না হওয়ার কারনে দুটি  শূণ্য (0) দ্বারা তিন ডিজিট পূর্ণ করা হয়েছে। এভাবে বাইনারী সংখ্যাটি হতে তিনটি গ্রুপ সৃষ্টি হয়েছে। এবার প্রত্যেকটি বাইনারী গ্রুপের সমতূল্য ডেসিম্যাল মান নিজ নিজ স্থানে বসিয়ে সমতূল্য অকট্যাল সংখ্যা 173 পাওয়া যায়।

b_t_oct

সুতরাং 11110112 = 1738

হেক্সাডেসিম্যাল হতে অকট্যাল রূপান্তরঃ

হেক্সাডেসিম্যাল হতে অকট্যালে রূপান্তরের ক্ষেত্রে প্রথমে হেক্সাডেসিম্যাল সংখ্যাটিকে সমতূল্য বাইনারী সংখ্যায় রূপান্তর করতে হবে। অতঃপর প্রাপ্ত বাইনারী সংখ্যাটিকে সমতূল্য অকট্যালে রূপান্তর করলেই কাংখিত অকট্যালে সংখ্যা পাওয়া যাবে। চিত্রে বর্ণিত পদ্ধতিটি লক্ষ্যনীয়। প্রথমে হেক্সাডেসিম্যাল সংখ্যাটির প্রতিটি অংককে 4 বিটের বাইনারী সংখ্যায় রূপান্তর করা হয়। অতঃপর বাইনারী অংকগুলিকে পাশাপাশি সাজিয়ে তা হতে 3 ডিজিটের বাইনারী গ্রুপে তৈরী করা হয় এবং উক্ত প্রতিটি গ্রুপকে সমতূল্য ডেসিম্যাল সংখ্যা দ্বারা প্রতিস্থাপন করলে প্রাপ্ত সংখ্যাটি কাংখিত অকট্যাল সংখ্যা।

h_t_oct

চিত্র হতে পাই 12A16 = 0452 = 4528

বাইনারী হতে ডেসিম্যাল রূপান্তরঃ

বাইনারী সংখ্যার প্রতিটি অংকের স্থানীয় মানসমূহ যোগ করে সমতূল্য ডেসিম্যাল সংখ্যা পাওয়া যায়। চিত্রের উদাহরণটি লক্ষ্যনীয়ঃ

b_t_dec

বাইনারী হতে ডেসিম্যাল

বাইনারী পূর্ণ ও ভগ্নাংশ সংখ্যার ক্ষেত্রে পূর্ণ অংশের সমতূল্য ডেসিম্যাল সংখ্যা দশমিক বিন্দুর বামে এবং ভগ্নাংশ দশমিক বিন্দুর ডানে স্থাপন করতে হয়। যেমনঃ 11101.101 এর দশমিক মান হবে 29.625 বা 11101.1012 = 29.62510

অকট্যাল হতে ডেসিম্যাল রূপান্তরঃ

অকট্যাল সংখ্যার প্রতিটি অংকের স্থানীয় মান যোগ করে সংখ্যাটির সমতূল্য দশমিক মান নির্ণয় করা যায়। যেমনঃ

(123)8 = 3×80+2×81+1×82 = (83)10 আবার

(405)8 = 5×80+0×81+4×82 = (261)10

ভগ্নাংশ সংখ্যার ক্ষেত্রেঃ

(.540)8 = 5×8–1+4×8–2+0×8–3 = .625+.0625 = (.6875)10

সুতরাং, (123.540)8 = (83.6875)10

হেক্সাডেসিম্যাল হতে ডেসিম্যাল রূপান্তরঃ

প্রথমে হেক্সাডেসিম্যাল সংখ্যাটির প্রতিটি অংককে চার ডিজিটের সমতূল্য বাইনারী মানে রূপান্তর করতে হবে। অতঃপর প্রাপ্ত বাইনারী সংখ্যাটিকে সমতূল্য ডেসিমেল সংখ্যায় রূপান্তর করলে দশমিক সমতূল্য মান পাওয়া যাবে। উল্লেখ্য যে বাইনারী হতে ডেসিম্যাল সংখ্যায় রূপান্তর প্রকৃয়া পূর্বে দেখানো হয়েছে। উদাহরণটি লক্ষ্যনীয়ঃ

B5D16  = 1011  0101  1101 = 101101011101 = 290910

ডেসিম্যাল হতে হেক্সাডেসিম্যাল রূপান্তরঃ

দশমিক পূর্ণ সংখ্যাকে পর্যায়ক্রমে 16 দ্বারা ভাগ করে সর্বশেষ ভাগফল এবং পূর্ববর্তী ভাগফলগুলিকে পর্যায়ক্রমে সাজিয়ে হেক্সাডেসিম্যাল সংখ্যা পাওয়া যায়। পাশের চিত্রে একটি উদাহরণ দেয়া হয়েছে। এখানে 85010 = 35216

d_t_hd

উল্লেখ্য যে, ডেসিম্যাল 10, 11, 12, 13, 14, 15 সংখ্যাগুলিকে হেক্সাডেসিম্যালে যথাক্রমে A, B, C, D, E, F দ্বারা প্রকাশ করা হয়।

বাইনারী হতে হেক্সাডেসিম্যাল রূপান্তরঃ

বাইনারী সংখ্যাটির ডান দিক হতে চারটি করে ডিজিট নিয়ে একটি করে গ্রুপ তৈরী করতে হবে। এভাবে প্রদত্ত সংখ্যাটি দ্বারা যতগুলি গ্রুপ তৈরী করা যায় ততগুলি গ্রুপ তৈরী করতে হবে। সর্ব বামের বা শেষ গ্রুপে চারটির কম বাইনারী ডিজিট হলে বাম পার্শ্বে প্রয়োজনীয় সংখ্যক শূণ্য 0 দ্বারা চার ডিজিট পূর্ণ করতে হবে। এবার প্রতিটি প্রুপের সমতূল্য হেক্সাডেসিম্যাল মান নিজ নিজ স্থানে বসালেই হেক্সাডেসিম্যাল মান পাওয়া যাবে। চিত্রের উদাহরণ লক্ষ্যনীয়ঃ

b_t_hd

সুতরাং 11110112 = 7B16

অকট্যাল হতে হেক্সাডেসিম্যাল রূপান্তরঃ

অকট্যাল হতে হেক্সাডেসিম্যাল সংখ্যায় রূপান্তরের প্রকৃয়া দুই ধাপে সম্পন্ন হয় প্রথমে অকট্যাল সংখ্যাটিকে সমতূল্য বাইনারী সংখ্যায় রূপান্তর করতে হয় অতঃপর প্রাপ্ত বাইনারী সংখ্যাটিকে হেক্সাডেসিম্যালে রূপান্তর করতে হয়। চিত্রের উদাহরণটি লক্ষ্যনীয়ঃ

o_t_hd

উদাহরণে দেখা যাচ্ছে 127 অকট্যাল সংখ্যাটির প্রত্যেকটি ডিজিটকে তিন বিটের বাইনারী মানে রূপান্তর করে একটি সংখ্যা পাওয়া যায়। প্রাপ্ত বাইনারী সংখ্যাটিকে ডান দিক হতে চার বিট করে একটি করে গ্রুপ তৈরী করা হয়েছে এবং সর্ব বামে প্রয়োজনীয় সংখ্যক 0 শূণ্য যোগ করে চার বিট পূর্ণ করা হয়েছে এবার প্রত্যকেটি চার বিটের গ্রুপকে সমতূল্য হেক্সাডেসিম্যাল মানে রূপান্তর করে একটি হেক্সাডেসিম্যল সংখ্যা পাওয়া যায়, যা নির্ণেয় সংখ্যা। সুতরাং 1278 = 5716


 

বাইনারি গণিত


কমপ্লিমেন্ট বা পূরক এর ধারণাঃ

কোন কিছুর সংখ্যা বা পরিমান যা একটি নির্দিষ্ট পরিমান পূর্ণ করতে প্রয়োজন হয় তাকে পূরক বা কমপ্লিমেন্ট বলা হয়। অন্য কথায় পূরক বলতে পূর্ণ পরিমান হতে ঘাটতি বুঝায়। ডিজিটাল ইলেকট্রনিক্সের ভাষায় কোন একটি অংক হতে ঐ সংখ্যা পদ্ধতির ভিত্তি পূরণ করতে যে পরিমান ঘাটতি থাকে তাই উক্ত অংকের পূরক। যেমনঃ দশমিক পদ্ধতিতে 7 এর পূরক 3 কারন দশমিক সংখ্যা পদ্ধতির ভিত্তি 10 পূর্ণ করতে 7 এর নিকট এখনো (10–7)10=3 ঘাটতি রয়েছে । সুতরাং 7 এর 10’s কমপ্লিমেন্ট হলো 3 ।  আবার বাইনারী সংখ্যা পদ্ধতিতে 1 এর 2’s  কমপ্লিমেন্ট হলো 1 কারণ বাইনারী সংখ্যা পদ্ধতির ভিত্তি 2 পূর্ণ করতে 1 এর নিকট এখনো (10–1)2=1 ঘাটতি রয়েছে। অনুরূপভাবে অকট্যাল সংখ্যা পদ্ধতিতে 6 এর 8’s  কমপ্লিমেন্ট হলো 2 কারণ অকট্যাল সংখ্যা পদ্ধতির ভিত্তি 8 পূর্ণ করতে 6 এর নিকট এখনো (8–6)8=2 ঘাটতি রয়েছে ।

এ তো গেল একটি মাত্র বিট বা ডিজিটের ক্ষেত্রে পূরকের হিসাব, কিন্তু সংখ্যাটি যদি একটি মাত্র বিট বা ডিজিটে সীমিত না হয়ে কতকগুলি অংকের সমন্বয়ে গঠিত একটি বড় সংখ্যা হয় তবে তার পূরক কিভাবে নির্ণয় করা হবে? এটা একটা জটিল প্রশ্ন। গবেষকগণ এই সমস্যার সমাধান করেছেন r’s কমপ্লিমেন্ট এবং (r – 1)’s কমপ্লিমেন্ট তত্ত্বের মাধ্যমে।

পূরক এর ব্যবহারঃ

ডিজিটাল বর্তনীসমূহ এবং মাইক্রো কম্পিউটারে বিভিন্ন সংখ্যার বিয়োগ প্রকৃয়াকে সহজতর করা এবং বিভিন্ন লজিক্যাল অপারেশন সরলীকরণে পূরক পদ্ধতি ব্যবহার হয়।

প্রকারঃ

ডিজিটাল ইলেকট্রনিক্সে দুই ধরণের কমপ্লিমেন্ট বা পূরকের ব্যবহার দেখা যায়ঃ

১।       r’s কমপ্লিমেন্ট এবং
২।       (r – 1)’s কমপ্লিমেন্ট

এখানে r হলো সংখ্যা পদ্ধতির Radix বা ভিত্তি। যদি সংখ্যা পদ্ধতিটি বাইনারী হয় তবে তার ভিত্তি 2 এবং এই সংখ্যা পদ্ধতির পূরক দুটি হবে 2’s কমপ্লিমেন্ট এবং (2 – 1)’s বা 1’s কমপ্লিমেন্ট। যদি সংখ্যা পদ্ধতিটি অকট্যাল হয় তবে তার ভিত্তি 8 এবং এই সংখ্যা পদ্ধতির পূরক দুটি হবে 8’s কমপ্লিমেন্ট এবং (8–1)’s বা 7’s কমপ্লিমেন্ট। অনুরূপভাবে যদি সংখ্যা পদ্ধতিটি ডেসিম্যাল হয় তবে তার ভিত্তি 10 এবং এই সংখ্যা পদ্ধতির পূরক দুটি হবে 10’s কমপ্লিমেন্ট এবং (10–1)’s বা 9’s কমপ্লিমেন্ট। এভাবে সকল সংখ্যা পদ্ধতির দুটি করে পূরক পদ্ধতি থাকবে r’s কমপ্লিমেন্ট এবং (r–1)’s কমপ্লিমেন্ট।

r’s কমপ্লিমেন্ট এর ধারণাঃ

যদি একটি ধণাত্বক সংখ্যা N এর ভিত্তি r এবং সংখ্যাটিতে n টি পূর্ণ সংখ্যার ডিজিট থাকে তবে সংখ্যাটির r’s কমপ্লিমেন্ট হবে rn–N, যেখানে N ≠ 0 এবং যখন N = 0 তখন r’s কমপ্লিমেন্ট = 0 । এক্ষেত্রে অবশ্যই r >1 হতে হবে, অর্থাত সংখ্যা পদ্ধতির ভিত্তি 1 অপেক্ষা বড় হলে সূত্রটি প্রযোজ্য হবে। নিচের উদাহরণসমূহ লক্ষণীয়ঃ

উদাহরণ – ১: (23450)10 এর 10’s কমপ্লিমেন্ট নির্ণয় কর।

সমাধানঃ

এখানে, N = 23450, r = 10, n = 5

(23450)10 এর 10’s কমপ্লিমেন্ট = rn – N = 105 – 23450 = 76550

উদাহরণ – ২: (0.3267)10 এর 10’s কমপ্লিমেন্ট নির্ণয় কর।

সমাধানঃ

এখানে, N = 0.3267, r = 10, যেহেতু পূর্ণ সংখ্যা শূণ্য তাই n = 0

(0.3267)10 এর 10’s কমপ্লিমেন্ট = rn – N = 100 – 0.3267

= 1 – 0.3267 = 0.6733

উদাহরণ – ৩: (25.639)10 এর 10’s কমপ্লিমেন্ট নির্ণয় কর।

সমাধানঃ

এখানে, N = 25.639, r = 10, n = 2

(25.639)10 এর 10’s কমপ্লিমেন্ট = rn – N = 102 – 25.639

= 100 – 25.639 = 74.361

উদাহরণ – ৪: (101100)2 এর 2’s কমপ্লিমেন্ট নির্ণয় কর।

সমাধানঃ

এখানে, N = 101100, r = 2, n = 6

(101100)2 এর 2’s কমপ্লিমেন্ট = rn – N = (26)10 – (101100)2

= (1000000 – 101100)2 = 010100

উপরোক্ত উদাহরণসমূহ পর্যালোচনা করে পাওয়া যায় যে, উপরোক্ত সূত্র ব্যতিত কয়েকটি ধাপে একটি দশমিক সংখ্যার 10’s কমপ্লিমেন্ট নির্ণয় করা যায়ঃ

ধাপ – ১: দশমিক সংখ্যাটির Least সিগনিফিকেন্ট বা ডান পার্শ্বস্থ ডিজিটসমূহে শূণ্য থাকলে উক্ত শূণ্যসমূহকে অপরিবর্তিত বসাতে হবে, আর ডান দিক হতে সর্ব প্রথম শূণ্য ভিন্ন যে অংক পাওয়া যাবে উক্ত অংককে 10 হতে বিয়োগ করে বিয়োগ ফল সর্ব ডানে লিখতে হবে। উল্লেক্ষ্য যে বিয়োগ করার সময় ক্যারি উপেক্ষা করতে হবে।

ধাপ – ২: এর পরবর্তী প্রত্যেকটি ডিজিটকে 9 হতে বিয়োগ করে বিয়োগ ফল পূর্ববর্তী ফলাফলের বামে লিখতে হবে। এভাবে শেষ পর্যন্ত সম্পন্ন করতে হবে। তাহলে দশমিক সংখ্যার 10’s কমপ্লিমেন্ট নির্ণয় করা যাবে।

নিচের চিত্রটির উদাহরণ (ক) এবং (খ) লক্ষ্যণীয়ঃ

t_c

দশমিক সংখ্যার পূরক

উপরোক্ত পদ্ধতিটিকে সূত্রের বিকল্প সহজতর পদ্ধতি বলা যেতে পারে।

একটি বাইনারী সংখ্যার 2’s কমপ্লিমেন্ট নির্ণয় করা যায় নিম্নোক্ত উপায়েঃ

ধাপ – ১: একটি বাইনারী সংখ্যার Least সিগনিফিকেন্ট বা ডান পাশের ডিজিট 0 হলে ধারাবাহিকভাবে ডান দিক হতে বাম দিকে সকল 0 এবং প্রথম যে 1 পাওয়া যাবে তাকে অপরিবর্তিত বসাতে হবে।

ধাপ – ২: বাইনারী সংখ্যাটির Least সিগনিফিকেন্ট বা সর্ব ডান পাশের ডিজিট 1 হলে শুধু উক্ত 1 কে অপরিবর্তিত বসাতে হবে।

ধাপ – ৩: এর পরবর্তী বাম পার্শ্বস্থ বিটসমূহকে উল্টিয়ে দিয়ে অর্থাত 0 এর স্থানে 1 এবং 1 এর স্থানে 0 বসিয়ে দিলেই সংখ্যাটির 2’s কমপ্লিমেন্ট পাওয়া যাবে।

নিচের চিত্রটির উদাহরণ (গ) এবং (ঘ) লক্ষণীয়ঃ

b_c

বাইনারী সংখ্যার পূরক

উপরোক্ত পদ্ধতিটিকে সূত্রের বিকল্প সহজতর পদ্ধতি বলা যেতে পারে।

অনুরূপভাবে একটি অকট্যাল সংখ্যার 8’s কমপ্লিমেন্ট নির্ণয় করা যায়ঃ

ধাপ – ১: অকট্যাল সংখ্যাটির Least সিগনিফিকেন্ট বা ডান পার্শ্বস্থ ডিজিটসমূহে শূণ্য থাকলে উক্ত শূণ্যসমূহকে অপরিবর্তিত বসাতে হবে, আর ডান দিক হতে সর্ব প্রথম শূণ্য ভিন্ন যে অংক পাওয়া যাবে উক্ত অংককে 8 হতে বিয়োগ করে বিয়োগ ফল সর্ব ডানে লিখতে হবে। উল্লেক্ষ্য যে বিয়োগ করার সময় ক্যারি উপেক্ষা করতে হবে।

ধাপ – ২: এর পরবর্তী প্রত্যেকটি ডিজিটকে 7 হতে বিয়োগ করে বিয়োগ ফল পূর্ববর্তী ফলাফলের বামে লিখতে হবে। এভাবে শেষ পর্যন্ত সম্পন্ন করতে হবে। তাহলে অকট্যাল সংখ্যার 8’s কমপ্লিমেন্ট নির্ণয় করা যাবে।

নিচের চিত্রটির উদাহরণ (ঙ) এবং (চ) লক্ষণীয়ঃ

o_c

অকট্যাল সংখ্যার পূরক

উপরোক্ত আলোচনা হতে বুঝা যায় যে, r’s কমপ্লিমেন্ট একটি সাধারণ টার্ম যার সাহায্যে যে কোন ভিত্তি বিশিষ্ট সংখ্যাকে তার r’s কমপ্লিমেন্টে রূপান্তর করা সম্ভব এবং rn – N সূত্রের সাহায্যে রূপান্তরিত কমপ্লিমেন্টের নাম হবে ভিত্তি সংখ্যার সমান অর্থাত দশমিক সংখ্যার জন্য 10’s কমপ্লিমেন্ট, বাইনারী সংখ্যার জন্য 2’s কমপ্লিমেন্ট আর কোন সংখ্যার ভিত্তি 13 হলে তার জ্ন্য 13’s কমপ্লিমেন্ট।

(r – 1)’s কমপ্লিমেন্ট এর ধারণাঃ

যদি একটি ধণাত্বক সংখ্যা N এর ভিত্তি r এবং সংখ্যাটিতে n সংখ্যক পূর্ণ সংখ্যার ডিজিট এবং m সংখ্যক ভগ্নাংশ সংখ্যার ডিজিট থাকে তবে সংখ্যাটির (r–1)’s কমপ্লিমেন্ট হবে rnr–m–N, যেখানে N ≠ 0 । এক্ষেত্রে অবশ্যই r >1 হতে হবে, অর্থাত সংখ্যা পদ্ধতির ভিত্তি 1 অপেক্ষা বড় হলে সূত্রটি প্রযোজ্য হবে। নিচের উদাহরণসমূহ লক্ষণীয়ঃ

উদাহরণ – ১: (23450)10 এর (r – 1)’s বা 9’s কমপ্লিমেন্ট নির্ণয় কর।

সমাধানঃ

এখানে, N = 23450, r = 10, n = 5, যেহেতু ভগ্নাংশ ডিজিট শূণ্য তাই m = 0

(23450)10 এর 9’s কমপ্লিমেন্ট =rnr–m–N =105–100–23450=76549

উদাহরণ – ২: (0.3245)10 এর 9’s কমপ্লিমেন্ট নির্ণয় কর।

সমাধানঃ

এখানে, N = 0.3245, r = 10, যেহেতু পূর্ণ সংখ্যা শূণ্য তাই n = 0, m = 4

(0.3245)10 এর 9’s কমপ্লিমেন্ট = rnr–m–N = 100 – 10–4 – 0.3245

= 1 – 0.0001 – 0.3245 = 0.6754

উদাহরণ – ৩: (25.639)10 এর 9’s কমপ্লিমেন্ট নির্ণয় কর।

সমাধানঃ

এখানে, N = 25.639, r = 10, n = 2, m = 3

(25.639)10 এর 9’s কমপ্লিমেন্ট = rnr–m–N = 102 – 10–3 – 25.639

= 100 – 0.001 – 25.639 = 74.360

উদাহরণ – ৪: (101100)2 এর 1’s কমপ্লিমেন্ট নির্ণয় কর।

সমাধানঃ

এখানে, N = 101100, r = 2, n = 6, m = 0

(101100)2 এর 1’s কমপ্লিমেন্ট = rnr–m–N = (26–2–0)10 – (101100)2

= (111111 – 101100)2 = 010011

উপরোক্ত উদাহরণসমূহ পর্যালোচনা করে পাওয়া যায় যে, উপরোক্ত সূত্র ব্যতিত নিম্নোক্ত প্রকৃয়ায় একটি দশমিক সংখ্যার 9’s কমপ্লিমেন্ট নির্ণয় করা যায়ঃ

ধাপ – ১: দশমিক সংখ্যাটির প্রতিটি ডিজিটকে 9 হতে বিয়োগ করে প্রাপ্ত বিয়োগফল হতে দশমিক সংখ্যার 9’s কমপ্লিমেন্ট নির্ণয় করা যাবে।

নিচের চিত্রটির উদাহরণ (ছ) এবং (জ) লক্ষণীয়ঃ

d_n_c

দশমিক সংখ্যার ৯ এর পূরক

উপরোক্ত পদ্ধতিটিকে সূত্রের বিকল্প সহজতর পদ্ধতি বলা যেতে পারে।

একটি বাইনারী সংখ্যার 1’s কমপ্লিমেন্ট নির্ণয় করা যায় নিম্নোক্ত উপায়েঃ

ধাপ – ১: একটি বাইনারী সংখ্যার প্রতিটি বিটকে উল্টিয়ে দিলেই উক্ত সংখ্যাটির 1’s কমপ্লিমেন্ট পাওয়া যাবে। অর্থাত বাইনারী সংখ্যাটির প্রতিটি 1 কে 0 তে এবং প্রতিটি 0 কে 1 এ রূপান্তর করে সংখ্যাটির 1’s কমপ্লিমেন্ট পাওয়া যাবে। যেমনঃ (101100)2 এর 1’s কমপ্লিমেন্ট 010011

উপরোক্ত সূত্র, সজ্ঞা এবং উদাহরণসমূহ পর্যালোচনা করে আরো বুঝা যায় যে, (r–1)’s কমপ্লিমেন্ট এর সাথে r–m যোগ করে সংখ্যাটির r’s কমপ্লিমেন্ট নির্ণয় করা যায়।    

উদাহরণসরূপঃ (101100)2 বাইনারী সংখ্যার 1’s কমপ্লিমেন্ট 010011 এর সাথে r–m=(2–0)10=(1)10=(1)2 যোগ করলেই 2’s কমপ্লিমেন্ট নির্ণয় করা যাবে। যেমনঃ 010011 + 000001 = 010100, অতএব, (101100)2 এর 2’s কমপ্লিমেন্ট 010100

উপরোক্ত পদ্ধতিটিকে সূত্রের বিকল্প সহজতর পদ্ধতি বলা যেতে পারে।

অনুরূপভাবে একটি অকট্যাল সংখ্যার 7’s কমপ্লিমেন্ট নির্ণয় করা যায়ঃ

ধাপ – ১: অকট্যাল সংখ্যাটির প্রতিটি ডিজিটকে 7 হতে বিয়োগ করে প্রাপ্ত বিয়োগফল হতে অকট্যাল সংখ্যার 7’s কমপ্লিমেন্ট নির্ণয় করা যাবে।

নিচের চিত্রটির উদাহরণ (ঝ) এবং (ঞ) লক্ষণীয়ঃ

o_7s

অকট্যাল সংখ্যার ৭ এর পূরক

উপরোক্ত আলোচনা হতে বুঝা যায় যে, (r–1)’s কমপ্লিমেন্ট একটি সাধারণ টার্ম যার সাহায্যে যে কোন ভিত্তি বিশিষ্ট সংখ্যাকে তার (r–1)’s কমপ্লিমেন্ট রূপান্তর করা সম্ভব এবং rnr–m–N সূত্রের সাহায্যে রূপান্তরিত কমপ্লিমেন্টের নাম হবে ভিত্তি সংখ্যা হতে 1 কম। অর্থাত দশমিক সংখ্যার জন্য 9’s কমপ্লিমেন্ট, বাইনারী সংখ্যার জন্য 1’s কমপ্লিমেন্ট আর কোন সংখ্যার ভিত্তি 13 হলে তার জ্ন্য 12’s কমপ্লিমেন্ট।

উপরোক্ত আলোচনা হতে আরো বুঝা যায় যে, একটি সংখ্যার r’s কমপ্লিমেন্টকে পুনঃরায় r’s কমপ্লিমেন্ট এ রূপান্তর করলে মূল সংখ্যাটি ফিরে আসে। যেমনঃ N এর r’s কমপ্লিমেন্ট rn–N কে পুনঃরায় r’s কমপ্লিমেন্ট করলে পাই rn–(rn–N)=N

বাইনারী সংখ্যার জন্য কমপ্লিমেন্ট নির্ণয়ের সহজমত পদ্ধতিঃ

একটি বাইনারী সংখ্যার 1’s এবং 2’s কমপ্লিমেন্ট নির্ণয় করা যায় নিম্নোক্ত উপায়েঃ

ধাপ – ১: একটি বাইনারী সংখ্যার প্রতিটি বিটকে উল্টিয়ে দিলেই উক্ত সংখ্যাটির 1’s কমপ্লিমেন্ট পাওয়া যাবে। অর্থাত বাইনারী সংখ্যাটির প্রতিটি 1 কে 0 তে এবং প্রতিটি 0 কে 1 এ রূপান্তর করে সংখ্যাটির 1’s কমপ্লিমেন্ট পাওয়া যাবে। যেমনঃ (101100)2 এর 1’s কমপ্লিমেন্ট 010011

ধাপ – ২: প্রাপ্ত 1’s কমপ্লিমেন্ট সংখ্যার LSB বা Least Significant Bit এর সাথে একটি বাইনারী বিট 1 যোগ করলে উক্ত সংখ্যাটির 2’s কমপ্লিমেন্ট পাওয়া যায়। যেমনঃ 010011 + 000001 = 010100, অতএব, (101100)2 এর 2’s কমপ্লিমেন্ট 010100

বাইনারী যোগঃ

আমরা কম্পিউটারে কোন যোগ নির্দেশ দিলে তার ফলাফল দশমিক সংখ্যায় দেখতে পাই কিন্তু কম্পিউটার কাজটি করে বাইনারী যোগের মাধ্যমে। ডিজিটাল সিস্টেমের সকল যোগ, বিয়োগ, গুণ, ভাগ ইত্যাদি বাইনারী পদ্ধতির যোগ, বিয়োগ, গুণ, ভাগ ইত্যাদির মাধ্যমে হয়ে থাকে। বাইনারী সংখ্যার যোগফল নির্ণয়ের প্রকৃয়া দশমিক সংখ্যার যোগ প্রকৃয়ার মত। নিচে বাইনারী যোগের পদ্ধতি দেখানো হলোঃ

এক বিটের যোগঃ 0+0=0, 1+0=1, 0+1=1, 1+1=10 এখানে যোগফল 0 এবং ক্যারি 1। আরো সুস্পষ্ট ধারণার জন্য নিচের সারণীটি লক্ষ্যনীয়ঃ

Augend Addend Carry Sum Result
0 0 0 0 0
0 1 0 1 1
1 0 0 1 1
1 1 1 0 10

 

একাধিক বিট বিশিষ্ট বাইনারী সংখ্যার যোগঃ উপরোক্ত চিত্রটি এক বিট বাইনারী যোগের উদাহরণ। কিন্তু একাধিক বিট সমন্বয়ে গঠিত বাইনারী সংখ্যার যোগফল নির্ণয়ের প্রকৃয়া নিচে দেখানো হলো। বাইনারী সংখ্যার যোগফল নির্ণয়ের প্রকৃয়া দশমিক সংখ্যার যোগ প্রকৃয়ার মত। যেমনঃ সর্ব ডানের কলাম হতে যোগ শুরু হয়, যোগফল উক্ত কলাম বরাবর নিচে লিখতে হয়। হাতে ক্যারি থাকলে তা পরবর্তি বাম পার্শ্বস্থ কলামের সাথে যোগ করে যোগফল উক্ত কলামের নিচে লিখতে হয়। এভাবে বাম দিকের শেষ বিট পর্যন্ত যোগ প্রকৃয়া চলতে থাকে। নিচের উদাহরণটি লক্ষ্যণীয়। বাইনারী সংখ্যা 1010 এবং 1101 যোগ করঃ

b_a_m_b

বাইনারী সংখ্যার যোগ

বাইনারী বিয়োগঃ

ডিজিটাল সিস্টেমের সকল বিয়োগ বাইনারী সংখ্যার বিয়োগ প্রকৃয়ার মাধ্যমে হয়ে থাকে। প্রকৃত পক্ষে বাইনারী সংখ্যার বিয়োগ প্রকৃয়া তিনটি পদ্ধতিতে হয়ে থাকেঃ ১। সরাসরি পদ্ধতি, ২। r’s কমপ্লিমেন্ট পদ্ধতি এবং ৩। (r – 1)’s কমপ্লিমেন্ট পদ্ধতি

নিচে সরাসরি বাইনারী বিয়োগের পদ্ধতি দেখানো হলোঃ

এক বিট বিয়োগঃ

0–0=0, 1–0=1, 0–1=(Difference=1 and Borrow=1), 1–1=0 এখানে যোগফল 0 এবং ক্যারি 1।

আরো সুস্পষ্ট ধারণার জন্য নিচের সারণীটি লক্ষ্যনীয়ঃ

Minuend Subtrahend Difference Borrow
0 0 0 0
0 1 1 1
1 0 1 0
1 1 0 0

 

একাধিক বিট বাইনারী সংখ্যার বিয়োগ

একাধিক বিট বিশিষ্ট বাইনারী সংখ্যার বিয়োগঃ উপরোক্ত চিত্রটি এক বিট বাইনারী বিয়োগের উদাহরণ। কিন্তু একাধিক বিট সমন্বয়ে গঠিত বাইনারী সংখ্যার বিয়োগফল নির্ণয়ের প্রকৃয়া নিচে দেখানো হলো। বাইনারী সংখ্যার বিয়োগফল নির্ণয়ের সরাসরি পদ্ধতিটি দশমিক সংখ্যার বিয়োগ প্রকৃয়ার মত, যেখানে ঋণ (Borrow) এর ধারণা ব্যবহৃত হয়। সর্ব ডানের কলাম হতে বিয়োগ শুরু হয়, বিয়োগফল উক্ত কলাম বরাবর নিচে লিখতে হয়। যখন কোন কলামের Subtrahend ডিজিট হতে Minuend ডিজিট ছোট হয় তখন পরবর্তি Higher Significant Minuend ডিজিট হতে একটি 1 ধার করতে হয় এবং বিয়োগের সময় উক্ত Higher Significant Minuend ডিজিট কে 1 ছোট ধরতে হয়। এভাবে বাম দিকের শেষ বিট পর্যন্ত বিয়োগ প্রকৃয়া চলতে থাকে। উদাহরণ (ট) লক্ষ্যণীয় যাতে বাইনারী সংখ্যা 1101 হতে 1010  বিয়োগ করা হয়েছে।

b_s_m_b

একাধিক বিট বাইনারী বিয়োগ

আরো একটি উদাহরণ (ঠ) লক্ষ্যণীয় যাতে বাইনারী সংখ্যা 1000 হতে 1001 বিয়োগ করা হয়েছে। এখানে Minuend সংখ্যাটি Subtrahend সংখ্যা হতে ছোট তাই বিয়োগ শেষে একটি End Borrow থাকবে এবং বিয়োগফল ঋণাত্বক হবে। এই বিয়োগফল প্রকৃত বিয়োগফল নয় এর End Borrow কে বাদ দিয়ে প্রাপ্ত সংখ্যাটির 2’s কমপ্লিমেন্ট নির্ণয় করলে যে ফল পাওয়া যাবে তাই প্রকৃত বিয়োগফল এবং তা হবে ঋণাত্বক সংখ্যা। সুতরাং 1111 এর 2’s কমপ্লিমেন্ট = 0001এবং প্রকৃত বিয়োগফল = – 1

b_s_m_b_2

(r – 1)’s কমপ্লিমেন্ট বা 1’s কমপ্লিমেন্ট পদ্ধতিতে বিয়োগঃ

এ পদ্ধতির বিয়োগ প্রকৃয়া কয়েকটি ধাপে সম্পন্ন হয় তা নিম্নরূপঃ

১।       Subtrahend সংখ্যার 1’s কমপ্লিমেন্ট নির্ণয় করতে হবে।
২।       প্রাপ্ত 1’s কমপ্লিমেন্ট সংখ্যাটি Minuend এর সাথে যোগ করতে হবে।
৩।      যোগফলে ক্যারি 1 হলে ক্যারিকে বাদ দিয়ে প্রাপ্ত সংখ্যাটির সাথে 1 যোগ করে যোগফলটি প্রকৃত বিয়োগফল হিসাবে বিবেচিত হবে।
৪।       যদি যোগফলে ক্যারি না থাকে তাহলে পূনঃরায় যোগফলের 1’s কমপ্লিমেন্ট নির্ণয় করতে হবে এবং সংখ্যাটির বামে একটি ঋণাত্বক চিহ্ন দিতে হবে।

নিচের উদাহরণ (ড) এবং (ঢ) লক্ষ্যণীয়ঃ

b_s_o_c

1’s কমপ্লিমেন্ট পদ্ধতিতে বাইনারী বিয়োগ

r’s কমপ্লিমেন্ট বা 2’s কমপ্লিমেন্ট পদ্ধতিতে বিয়োগঃ

এ পদ্ধতির বিয়োগ প্রকৃয়া কয়েকটি ধাপে সম্পন্ন হয় তা নিম্নরূপঃ

১।       Subtrahend সংখ্যার 2’s কমপ্লিমেন্ট নির্ণয় করতে হবে।
২।       প্রাপ্ত 2’s কমপ্লিমেন্ট সংখ্যাটি Minuend এর সাথে যোগ করতে হবে।
৩।      যোগফলে ক্যারি 1 হলে ক্যারিকে বাদ দিয়ে প্রাপ্ত সংখ্যাটি প্রকৃত বিয়োগফল হিসাবে বিবেচিত হবে।
৪।       যদি যোগফলে ক্যারি না থাকে তাহলে পূনঃরায় যোগফলের 2’s কমপ্লিমেন্ট নির্ণয় করতে হবে এবং সংখ্যাটির বামে একটি ঋণাত্বক চিহ্ন দিতে হবে।

নিচের উদাহরণ (ণ) এবং (ন) লক্ষ্যণীয়ঃ

b_s_t_c

2’s কমপ্লিমেন্ট পদ্ধতিতে বিয়োগ

BCD যোগঃ

BCD যোগফল নির্ণয় করতে নিচের ধাপগুলি সম্পন্ন করতে হবেঃ

১।       প্রথমে বিসিডি সংখ্যা দুটির সাধারণ যোগ সম্পন্ন করতে হবে।
২।       যদি যোগফল ≤ 9 হয় তবে ইহা সঠিক BCD নাম্বার হিসাবে বিবেচিত হবে।
৩।      যদি যোগফল > 9 হয় অথবা যোগফলে একটি ক্যারি 1 সৃষ্টি হয় তবে ইহা সঠিক BCD নাম্বার হিসাবে বিবেচিত হবে না। এক্ষেত্রে যোগফলের সাথে 6 বা বাইনারী 0110 যোগ করতে হবে।
৪।       প্রাপ্ত যোগফলের ডান দিক হতে 4টি করে বিট নিয়ে গ্রুপ তৈরী করতে হবে। বাম পার্শ্বের গ্রুপে বা Most Significant গ্রুপে 4বিট পূর্ণ না হলে এর বাম পার্শ্বে প্রয়োজনীয় সংখ্যক 0 যোগ করা যেতে পারে। এবার প্রতিটি গ্রুপ সঠিক BCD কোড হিসেবে বিবেচিত হবে। এবং প্রতিটি গ্রপের সমতূল্য দশমিক অংক প্রতিস্থাপন করলে যোগফল পাওয়া যাবে।

নিচের উদাহরণ (ত), (থ), (দ), (ধ) লক্ষ্যণীয়ঃ

bcd_add

 

BCD যোগফল নির্ণয়

BCD বিয়োগঃ

BCD বিয়োগফল নির্ণয় করতে নিচের ধাপগুলি সম্পন্ন করতে হবেঃ

১।       প্রথমে বিসিডি সংখ্যা দুটির সাধারণ বিয়োগ সম্পন্ন করতে হবে।
২।       যদি যোগফল ≤ 9 হয় তবে ইহা সঠিক BCD নাম্বার হিসাবে বিবেচিত হবে।
৩।      যদি যোগফল > 9 হয় অথবা যোগফলে একটি ক্যারি 1 সৃষ্টি হয় তবে ইহা সঠিক BCD নাম্বার হিসাবে বিবেচিত হবে না। এক্ষেত্রে যোগফলের সাথে 6 বা বাইনারী 0110 যোগ করতে হবে।
৪।       প্রাপ্ত যোগফলের ডান দিক হতে 4টি করে বিট নিয়ে গ্রুপ তৈরী করতে হবে। বাম পার্শ্বের গ্রুপে বা Most Significant গ্রুপে 4বিট পূর্ণ না হলে এর বাম পার্শ্বে প্রয়োজনীয় সংখ্যক 0 যোগ করা যেতে পারে। এবার প্রতিটি গ্রুপ সঠিক BCD কোড হিসেবে বিবেচিত হবে। এবং প্রতিটি গ্রপের সমতূল্য দশমিক অংক প্রতিস্থাপন করলে বিয়োগফল পাওয়া যাবে।

নিচের উদাহরণ (প), (ফ) লক্ষ্যণীয়ঃ

bcd_sub

BCD বিয়োগফল নির্ণয়


কোড


কোড পদ্ধতি ও আন্তঃ পদ্ধতি রূপান্তর প্রকৃয়া সম্পর্কে জ্ঞান লাভ করা ডিজিটাল ইলেকট্রনেক্সের প্রাথমিক জ্ঞানের অন্তর্ভূক্ত বিষয়। এই বিষয়ে জ্ঞান লাভ না করলে ডিজিটাল ইলেকট্রনিক্সের নানাবিধ গাণিতিক ও যৌক্তিক অপারেশন, কার্য প্রকৃয়া, নকশা প্রনয়নের কৌশল এবং উন্নয়ন কোন কিছুই সম্ভব নয়। তাই ইলেকট্রনিক্সের শিক্ষর্থীদের এই বিষয়ে জ্ঞানার্জন অতীব গুরুত্ত্বপূর্ণ।

কোড পদ্ধতি কি?

মানুষের সাথে ডিজিটাল বর্তনীসমূহের যোযোগের জন্য কোড পদ্ধতির উদ্ভব। যেমন মানুষ (ক, খ, গ, ঘ, ০, ১, ২, ৩ এবং A, B, C, D) ইত্যাদি আলফাবেটিক এবং নিউমেরিক ক্যারেকটারের সাথে পরিচিত কিন্তু ডিজিটাল বর্তনীসমূহ এরূপ আলফানিউমেরিক ক্যারেকটারের সাথে পরিচিত নয় বরং এগুলি বাইনারী সংখ্যা পদ্ধতি নিয়ে কাজ করে। তাই এই সকল আলফানিউমেরিক ক্যারেকটারসমূহকে ডিজিটাল বর্তনীসমূহের নিকট পরিচিত করানোর জন্য আলফানিউমেরিক ক্যারেকটারসমূহকে ডিজিটাল বর্তনীসমূহের বোধগম্য ভাষা বাইনারী সংখ্যাপদ্ধতিতে রূপান্তর করা প্রয়োজন।

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

কোড পদ্ধতির সুবিধাসমূহঃ

১।      কম্পিউটার প্রয়োগের জন্য সুবিধাজনক
২।      ডিজিটাল কমিউনিকেশনের জন্য সুবিধাজনক
৩।     ডিজিটাল বর্তনীসমূহ ডিজাইন এবং বিশ্লেষণের জন সুবিধাজনক

প্রকারভেদঃ

চিত্রে কোড পদ্ধতির প্রকারভেদ দেখানো হলো।

code_classificationকোডের প্রকারভেদ

ওয়েটেড কোডসমূহঃ

যে কোডিং সিস্টেমে প্রতিটি বাইনারী বিটের একটি করে স্থানীয় মান থাকে তাকে ওয়েটেড কোড বলা হয়। এই পদ্ধতিতে প্রতিটি বাইনারী বিটকে তার স্থানীয় মান দ্বারা গুণ করে গুণফলসমূহের সমষ্টি দ্বারা সমতূল্য দশমিক ডিজিট নির্ধারণ করা হয়।

যদি x1, x2, x3 এই তিনটি বিটের স্থানীয় মান বা ওয়েট যথাক্রমে w1, w2, w3 হয় তবে x3x2x1 কোড দ্বারা নির্ধারিত দশমিক সংখ্যা N=w3x3+w2x2+w1x1 হবে।

BCD বা 8421 কোডঃ

BCD এর পূর্ণ অর্থ Binary Coded Decimal, এই কোড পদ্ধতি বাইনারী বিট ও ডেসিম্যাল ডিজিটের মধ্যে সম্পর্ক সৃষ্টিকারী কোড এবং এই পদ্ধতিতে প্রতিটি ডেসিম্যাল ডিজিটকে এনকোড করার জন্য ৪বিট বাইনারী সংখ্যা প্রয়োজন। উদাহরণসরূপ (35)10 কে BCD তে এনকোড করলে পাই (00110101)BCD  যেখানে (35)10 এর সমতূল্য বাইনারী সংখ্যাটি (100011)2 হবে। উল্লেখিত উদাহরণটি হতে ইহা স্পষ্ট যে, কোন দশমিক সংখ্যাকে BCD কোডে রূপান্তর করতে সাধারণ বাইনারী রূপান্তরের তুলনায় অধিক সংখ্যক বিট প্রয়োজন। ডিজিটাল সিস্টেমে ইনপুট এবং আউটপুট অপারেশনে BCD কোড ব্যবহৃত হয়।

BCD কোডটি 8421 কোড নামেও পরিচিত, কারন BCD কোডের চারটি বিটের স্থানীয় মান বা ওয়েট 8, 4, 2, 1 এর মাধ্যমে প্রকাশিত হয়। BCD কোডের LSB এর মান 20 বা 1 , পরবর্তী উচ্চতর গুরুত্ত্ব সম্পন্ন বিটের মান 21 বা 2 পরবর্তী উচ্চতর বিটের মান 22 বা 4 এবং MSB এর মান 23 বা 8 । এ কারনে এটি একটি ওয়েটেড কোড এবং এই কোডে গাণিতিক অপারেটরের অপারেশন যেমনঃ যোগ, বিয়োগ ইত্যাদি করা সম্ভব। যেহেতু 0×8+1×4+0×2+1×1=5 সুতরাং আমরা বলতে পারি (0101)BCD এর প্রতিটি বিটের ওয়েটসমূহের মাধ্যমে ডেসিম্যাল অংক 5 কে প্রতিস্থাপন করা যায়। যেহেতু BCD কোডে চারটি বাইনারী বিট ব্যবহার করা হয় সেহেতু বিটসমূহের বিন্যাসের মাধ্যমে সবোর্চ্চ 0 থেকে 15 পর্যন্ত দশমিক সংখ্যাসমূহ প্রকাশ করা সম্ভব। কিন্তু বাস্তবে BCD কোডের মাধ্যমে শুধুমাত্র 0 থেকে 9 পর্যন্ত দশমিক সংখ্যাসমূহকে প্রকাশ করা হয়। যদিও বাইনারী কোডসমূহ  1010, 1011, 1100, 1101, 1110, 1111 যথাক্রমে দশমিক সংখ্যা 10, 11, 12, 13, 14, 15 কে প্রকাশ করে তথাপি এই কোডসমূহ BCD পদ্ধতিতে ব্যবহৃত হয় না। সুতরাং এই ৬টি কোডসমূহকে বলা হয় নিষিদ্ধ কোড এবং ৬টি কোডের গ্রুপকে BCD পদ্ধতির নিষিদ্ধ গ্রুপ বলা হয়।

সারণী – ১: BCD ও সমতূল্য দশমিক সংখ্যাঃ

BCD সমতূল্য দশমিক সংখ্যা
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9

উদাহরণ – ১: 589 দশমিক সংখ্যাটির সমতূল্য BCD কোড নির্ণয় কর।

সমাধানঃ

সারণী – ১ হতে পাই 5 এর সমতূল্য BCD কোড 0101
8 এর সমতূল্য BCD কোড 1000
9 এর সমতূল্য BCD কোড 1001
এখানে 589 এর সমতূল্য BCD কোডসমূহ পর পর বসিয়ে পাই 010110001001
সুতরাং (589)10 = (010110001001)BCD

উদাহরণ – ২: 69.27 দশমিক সংখ্যাটির সমতূল্য BCD কোড নির্ণয় কর।

সমাধানঃ

সারণী হতে পাই 6 এর সমতূল্য BCD কোড 0110
9 এর সমতূল্য BCD কোড 1001
2 এর সমতূল্য BCD কোড 0010
7 এর সমতূল্য BCD কোড 0111
এখানে 69.27 এর সমতূল্য BCD কোডসমূহ পর পর বসিয়ে পাই 01101001.00100111
সুতরাং (69.27)10 = (01101001.00100111)BCD

84–2–1 কোডঃ

এই পদ্ধতিতে বাইনারী কোডের 2 এবং 1 পজিশনের বিটসমূহকে ঋণাত্বক ওয়েট দ্বারা গুণ করা হয়। যেমন 0101 কোড হতে পাওয়া যায় 0×8+1×4+0×(–2)+1×(–1)=3, এটি একটি বিশেষ ধরণের স্ব-পরিপূরক কোড যা বাইনারী কোডের 1’S কমপ্লিমেন্টকে দশমিক মানে রূপান্তর করলে যে মান পাওয়া যায় তা  উক্ত দশমিক অংকের 9’S কমপ্লিমেন্টকে প্রকাশ করে। 0101 এর 1’S কমপ্লিমেন্ট 1010 এবং 1010 হতে পাই 1×8+0×4+1×(–2)+0×(–1)=6 যা 3 এর 9’S কমপ্লিমেন্টকে প্রকাশ করে। এই পদ্ধতিটি দশমিক সংখ্যার গাণিতিক  অপারেশনের ক্ষেত্রে কার্যকরী।

2421 কোডঃ

এটি বিশেষ ধরনের ওয়েটেড কোড। 2421 কোডের মান 0 থেকে 4 পর্যন্ত সাধারণ BCD কোডের অনূরূপ কিন্তু 5 থকে 9 পর্যন্ত এর মান পরিবর্তন হয়। উদাহরণসরূপ 2421 কোডের ক্ষেত্রে বিট কম্বিনেশন 0100 এর দশমিক মান 4 কিন্তু 1101 এর দশমিক মান 7। এটি একটি স্ব-পরিপূরক কোড।

সারণী – ২: কোডসমূহের তুলনাঃ

দশমিকডিজিট (BCD)8421 84-2-1 2421 Excess-3
0 0000 0000 0000 0011
1 0001 0111 0001 0100
2 0010 0110 0010 0101
3 0011 0101 0011 0110
4 0100 0100 0100 0111
5 0101 1011 1011 1000
6 0110 1010 1100 1001
7 0111 1001 1101 1010
8 1000 1000 1110 1011
9 1001 1111 1111 1100

 

নন-ওয়েটেড কোডসমূহঃ

এই প্রকার কোডসমূহের বাইনারী বিটসমূহ পজিশনালী ওয়েটেড নয় অর্থাত এই কোডের বাইনারী বিটসমূহের নির্দিষ্ট স্থানীয় মান নেই। Excess-3 এবং Gray Code এই ধরনের কোডের অন্তর্ভূক্ত।

Excess – 3 কোডঃ

এটি বিশেষ ধরনের নন ওয়েটেড কোড। কোন দশমিক ডিজিটের সমতূল্য BCD কোডের সাথে দশমিক 3 বা বাইনারী 11 যোগ করলে Excess-3 কোড পাওয়া যায়। সুতরাং 9 এর Excess-3 কোড হবে 1100। Excess-3 কোড বিশেষ ধরণের স্ব-পরিপূরক কোড। Excess-3 কোড ডিজিটাল সিস্টেমে বিয়োগের কাজে ব্যবহার করা হয়।

উদাহরণঃ (367)10 কে Excess-3 কোডে রূপান্তর করুনঃ

সমাধানঃ

দশমিক সংখ্যা 3 6 7
3 যোগ করতে হবে +3 +3 +3
যোগফল 6 9 10

 

উপরোক্ত  যোগফলগুলিকে সমতূল্য 4 বিট বাইনারীতে রূপান্তর করে পাইঃ

6     = 0110

9     = 1001

10   = 1010

সুতরাং (367)10 = (0110 1001 1010)Excess-3

Gray কোডঃ

Gray কোড ওয়েটেড কোড নয়। এটি বিশেষ ধরণের রিফ্লেকটেড কোড। রিফ্লেকটেড প্রকৃয়ায় সৃষ্ট বাইনারী কোডকে Gray কোড বলা হয়। এটি গাণিতিক অপারেশনে ব্যবহার সুধিাজনক নয় কিন্তু এনালগ টু ডিজিটাল কনভার্টার সার্কিটে এবং ইনপুট আউটপুট ডিভাইসে ব্যবহার সুবিধাজনক।

উদাহরণঃ (0100)2 কে Gray কোডে রূপান্তর করুনঃ

সমাধানঃ

বাইনারী হতে গ্রে কোডে রূপান্তর

(0100)2 কে Gray কোডে রূপান্তর করতে হলে সর্ব বামের বিটকে অপরিবর্তিত বামে রাখতে হবে। এর পর বাম দিক হতে দুটি করে বিট যোগ করে যোগফল ডান দিকে পর পর বসাতে হবে। যেমনঃ চিত্রটি লক্ষ্য করি।

এখানে, (0100)2 = (0110)Gray

উদাহরণঃ

(0110)Gray কে Binary সংখ্যায় রূপান্তর করুনঃ

সমাধানঃ

গ্রে হতে বাইনারীতে রূপান্তর

Gray কোডকে বাইনারীতে রূপান্তর করতে হলে Gray কোডের সর্ব বামের বিট বা MSB কে বাইনারী সংখ্যার সর্ব বামে MSB হিসাবে বসাতে হবে। এর পর উক্ত MSB কে Gray কোডের পরবর্তী বিটের সাথে যোগ করে যোগফলকে বাইনারী সংখ্যার পরবর্তী বিট হিসাবে লিখতে হবে। প্রাপ্ত যোগফলকে Gray কোডের পরবর্তী বিটের সাথে যোগ করে যোগফলকে বাইনারী সংখ্যার পরবর্তী বিট হিসাবে লিখতে হবে। এভাবে চলবে শেষ পর্যন্ত। চিত্রের উদাহরণটি লক্ষ্যনীয়। চিত্রটি হতে আমরা পাই, (0110)Gray = (0100)2

ত্রুটি নির্ণয়ের কোডঃ

বাইনারী তথ্যসমূহ নানাবিধ প্রয়োজনে বিভিন্ন যোগাযোগ মাধ্যমে (বেতার, অপটিক্যাল ফাইবার ইত্যাদি) এক স্থান হতে অন্য স্থানে প্রেরিত হয়। অনেক সময় এ সকল ভৌত যোগাযোগ মাধ্যমসমূহে বাহ্যিক নয়েজের উপস্থিতিতে ডাটা কোডসমূহ নয়েজ আক্রান্ত হয়ে মূল রূপ হতে পরিবর্তিত হয়ে ভুল আকারে রিসিভারে ধরা পরে, অর্থাত ডাটা কোডের 1 বিট 0 তে কিংবা 0 বিট 1 এ পরিনত হতে পারে। এই ত্রুটিসমূহ নির্ণয় করার জন্য ডাটা কোডের সাথে ত্রুটি নির্ণয়ের কোড ব্যবহার করা হয়। ত্রুটি নির্ণয়ের কোডের মাধ্যমে শুধু ত্রুটি নির্ণয় সম্ভব কিন্তু সংশোধন সম্ভব নয়।

প্যারিটি বিটঃ

প্যারিটি বিট ভুল নির্ণয়ের জন্য ব্যবহার হয়। প্যারিটি বিট Parity Bit একটি অতিরিক্ত বিট যা কোড গ্রুপের সাথে এক স্থান হতে অন্যস্থানে প্রবাহিত হয়। মূল ডাটা কোডের সাথে বিশেষ নিয়মে প্যারিটি বিট সংযুক্ত করলে যে কোড পাওয়া যায় তাকে প্যারিটি চেকড্‌ কোড বলা হয়। প্যারিটি বিট 0 বা 1 এর যে কোন একটি হতে পারে, তবে এ বিষয়টি নির্ভর করে মূল কোডে কতগুলি 1 আছে তার উপর। প্যারিটি বিট দুই ধরণের হয়ে থাকেঃ ১। জোড় প্যারিটি (Even Parity) এবং ২। বেজোড় প্যারিটি (Odd Parity)

১।     জোড় প্যারিটিঃ

প্যারিটি বিটসহ কোড গ্রুপে জোড় সংখ্যক 1 থাকলে উক্ত কোড গ্রুপকে জোড় প্যারিটি বলা হয়। উদাহরণসরূপঃ মূল কোড 1011001 এ জোড় সংখ্যক 1 বিদ্যমান তাই একে জোড় প্যারিটি করতে হলে একটি অতিরিক্ত 0 যোগ করতে হবে অর্থাত প্যারিটি বিট সহ কোডটি 01011001 হবে। আবার মূল কোড 1001001 এ বেজোড় সংখ্যক 1 বিদ্যমান তাই একে জোড় প্যারিটি করতে হলে একটি অতিরিক্ত 1 যোগ করতে হবে অর্থাত প্যারিটি বিট সহ কোডটি 11001001 হবে।

২।     বেজোড় প্যারিটিঃ

প্যারিটি বিটসহ কোড গ্রুপে বেজোড় সংখ্যক 1 থাকলে উক্ত কোড গ্রুপকে বেজোড় প্যারিটি বলা হয়। উদাহরণসরূপঃ মূল কোড 1011001 এ জোড় সংখ্যক 1 বিদ্যমান তাই একে বেজোড় প্যারিটি করতে হলে একটি অতিরিক্ত 1 যোগ করতে হবে অর্থাত প্যারিটি বিট সহ কোডটি 11011001 হবে। আবার মূল কোড 1001001 এ বেজোড় সংখ্যক 1 বিদ্যমান তাই একে বেজোড় প্যারিটি করতে হলে একটি অতিরিক্ত 0 যোগ করতে হবে অর্থাত প্যারিটি বিট সহ কোডটি 01001001 হবে।

ত্রুটি সংশোধনের কোডঃ

ডিজিটাল সিস্টেমে ত্রুটি নির্ণয় এবং ত্রুটিসমূহ সংশোধনের জন্য বিশেষ ধরণের কোডিং পদ্ধতি ব্যবহার করা হয়। এর মধ্যে হ্যামিং কোড Hamming Code অন্যতম।

হ্যামিং কোডে রূপান্তরঃ

ডিজিটাল সিস্টেমে ত্রুটি নির্ণয় এবং ত্রুটিসমূহ সংশোধনের জন্য হ্যামিং কোড Hamming Code বিশেষ জনপ্রিয়। ১৯৫০ সালে Richard Wesley Hamming নামে একজন আমেরিকান গণিতজ্ঞ এই কোড পদ্ধতি আবিষ্কার করেন। তার নামানুসারে এর নাম হয় হ্যামিং কোড। হ্যামিং কোডের সাহায্যে কোড গ্রুপের কোন বিটটি সঠিক নয় তা বের করা যায় এবং সংশোধন করা যায়। হ্যামিং কোডে দুটি অংশ থাকে একটি মূল কোড এবং অপরটি প্যারিটি চেক কোড। হ্যামিং কোডে প্যারিটি চেক বিটের অবস্থান 2n দ্বারা নির্ধারণ করা হয়। n  এর মান 0, 1, 2, 3, 4 ইত্যাদি হতে পারে। তাহলে 2n = 1, 2, 4, 8, 16 ইত্যাদি অবস্থানসমূহে প্যরিটি চেক বিটসমূহ বসাতে হবে। যেমনঃ F এর ASCII কোড 1000110 কে হ্যামিং কোডে রূপান্তর করতে হলে নির্ণীত হ্যামিং কোডের 1, 2, 4, 8 নং অবস্থানসমূহে প্যারিটি চেক বিটসমূহ h1, h2, h3, h4 বসাতে হবে। এবং বাকী অবস্থানগুলি মূল কোডের বিটসমূহ ধারাবাহিকভাবে বসাতে হবে, তাহলে হ্যামিং কোড প্যাটার্ন তৈরী হবে। নিচের চিত্রটি লক্ষ্যনীয়ঃ

h_c_t

এবার হ্যামিং কোড প্যাটার্নের যে সকল অবস্থানে 1 রয়েছে সেই সকল অবস্থান নম্বরসমূহের বাইনারী যোগফল নির্ণয় করতে হবে। উল্লেখ্য যে, যোগ করার সময় ক্যারি উপেক্ষা করতে হবে। যোগফলের বিটসমূহ হবে h4, h3, h2, h1 এর মান। এখন এই মানসমূহ হ্যামিং কোড প্যাটার্নের প্যারিটি চেক বিটের অবস্থানসমূহে যেমনঃ h4, h3, h2, h1 এ বসালে কাংখিত হ্যামিং কোড পাওয়া যাবে। যেমনঃ উপরোক্ত চিত্রে 11, 6 এবং 5 নং অবস্থানে 1 রয়েছে, সুতরাং 11, 6 এবং 5 এর বাইনারী যোগ করতে হবে। এখানে,

11 = (1011)2

6 = (0110)2

5 = (0101)2

 

অবস্থানগুলির বাইনারী যোগ (ক্যারি উপেক্ষা করে)

অর্থাত h4 = 1, h3 = 0, h2 = 0, h1 = 0, এই মানসমূহ হ্যামিং কোড প্যাটার্নে বসালে পাই 10010110000, ইহাই F এর হ্যামিং কোড। এই হ্যামিং কোডটি ট্রান্সমিশন মেডিয়ামের মধ্য দিয়ে পাঠানো হবে এবং রিসিভারে গৃহীত হবে। এখন কোডটি নয়েজ আক্রান্ত হলে তার ত্রুটি নির্ণয় এবং সংশোধন করতে হবে।

ত্রুটি নির্ণয় ও সংশোধনের পদ্ধতিঃ

রিসিভিং প্রান্তে গৃহীত কোডটির যে সকল অবস্থান নম্বরে 1 আছে সে সকল অবস্থান নম্বরের বাইনারী যোগফল 0 হলে কোডটি ত্রুটিমুক্ত অবস্থায় গৃহীত হয়েছে ধরা হবে। এবং তা না হলে গৃহীত কোডে ত্রুটি আছে ধরা হবে এবং যোগফল যে দশমিক সংখ্যা প্রকাশ করে গৃহীত কোডের উক্ত অবস্থান নম্বরের বিটে ত্রুটি ঘটেছে নির্ণীত হবে। উল্লেখ্য যে, যোগ করার সময় ক্যারি উপেক্ষা করতে হবে।

মনে করি রিসিভিং প্রান্তে 10010110000 কোডটি গৃহীত হয়েছে। আমরা জানিনা এতে ত্রুটি আছে কি-না। তাই পরীক্ষা করতে হবে। আসুন পরীক্ষা করি। নিচের চিত্রটি লক্ষ্য করুনঃ

CODE_SYSTEMS

চিত্র হতে দেখা যাচ্ছে, 11, 8, 6 এবং 5 নং অবস্থানে 1 রয়েছে। এই অবস্থান নাম্বারগুলির বাইনারী যোগফল নির্ণয় করি। উল্লেখ্য যে, যোগ করার সময় ক্যারি উপেক্ষা করতে হবে। 11 = (1011)2, 8 = (1000)2, 6 = (0110)2, 5 = (0101)2,

অতএব,1011 + 1000 + 0110 + 0101 = 0000

যেহেতু যোগফল 0 তাই কোডটি নির্ভুল ভাবে গৃহীত হয়েছে।

মনে করি নয়েজ আক্রান্ত হওয়ার কারণে 5 নং অবস্থানের বিটটি 1 হতে 0 তে রূপান্তরিত হল। এবং 10010100000 কোড রিসিভারে গৃহীত হলো। এখন পরীক্ষা করতে হবে কোডে ত্রুটি আছে কি-না।

গৃহীত কোড হতে দেখা যাচ্ছে, 11, 8, 6 নং অবস্থানে 1 রয়েছে। এই অবস্থান নাম্বারগুলির বাইনারী যোগফল নির্ণয় করি। উল্লেখ্য যে, যোগ করার সময় ক্যারি উপেক্ষা করতে হবে। 11 = (1011)2, 8 = (1000)2, 6 = (0110)2

অতএব,1011 + 1000 + 0110 = 0101 = 5

যেহেতু যোগফলটির মান 0 নয় তাই বলা যায় কোডটি নির্ভুল ভাবে গৃহীত হয়নি এবং যোগফলের মান দশমিক 5 হওয়ার কারনে বুঝা যাচ্ছে গৃহীত কোডের 5 নং বিটে ত্রুটি সংঘটিত হয়েছে। এই 5 নং বিটটিকে উল্টিয়ে দিলেই ত্রুটি সংশোধন হবে। 5 নং বিটের 0 কে উল্টিয়ে 1 বসিয়ে পাই 10010110000, সুতরাং সঠিক কোডটি হলো(10010110000)।

আলফানিউমেরিক কোডঃ

ডিজিটাল ইলেকট্রনিক্সের বিভিন্ন বর্তনীসমূহ এবং আধুনিক মাইক্রোকম্পিউটারের ব্যবহার শুধুমাত্র সংখ্যাগত ক্যারেকটারের মাঝে সীমিত নয় বরং তাতে বর্ণমালা, সংখ্যা, বিশেষ চিহ্ন ইত্যাদি প্রকাশ, মূদ্রণ ও প্রেরণের প্রয়োজনীয়তা দেখা দেয়। এ সকল চাহিদা পূরনের নিমিত্ত কম্পিউটারে বর্ণমালা, সংখ্যা, বিশেষ চিহ্ন ইত্যাদি প্রকাশ করার জন্য বিশেষ ধরণের এক বা একাধিক কোড পদ্ধতির প্রবর্তন হয়। এগুলিকে আলফানিউমেরিক কোড বলা হয়। আলফানিউমেরিক কোডসমূহের মাঝে প্রসিদ্ধ হলো ASCII কোড, EBCDIC কোড, Hollerith কোড, ইউনিকোড (Unicode) ইত্যাদি।

ASCII কোডঃ

ASCII এর পূর্ণ অর্থ হলো American Standard Code for Information Interchange, এটি বিশেষ ধরণের কোড পদ্ধতি যা অধিকাংশ মাইক্রোকম্পিউটারে বর্ণমালা সংখ্যা ও বিশেষ চিহ্ন প্রকাশের জন্য ব্যবহৃত হয়। ১৯৬৫ সালে Robert William Bemer সাত বিটের ASCII কোড উদ্ভাবন করেন। এটি একটি বহুল প্রচলিত 7 বিট কোড, যার বাম দিকের তিনটি বিটকে জোন এবং ডান দিকের চারটি বিটকে সংখ্যাসূচক বিট ধরা হয়, তবে সর্ব বামে একটি প্যারিটি বিট যোগ করে একে (ASCII – 8) আট বিট ASCII তে পরিণত করা হয়। এই কোডের 7 টি বিট দ্বারা 27=128 টি ক্যরেকটার প্রকাশ করা যায়। এর মধ্যে 32 টি কোড কন্ট্রোল্ড কোড হিসাবে সংরক্ষিত যা প্রিন্ট করা যায় না। সারণীতে – ৩ এ বর্ণমালার সাপেক্ষে ASCII কোডের উপস্থাপনা দেখানো হয়েছে।

EBCDIC কোডঃ

EBCDIC এর পূর্ণ অর্থ (Extended Binary Coded Decimal Interchange Code)। এটি বিশেষ ধরণের আলফানিউমেরিক কোড যা IBM Mainframe যন্ত্রপাতি এবং বৃহৎ কম্পিউটিং সিস্টেম যা বিপুল পরিমান আলফানিউমেরিক ডাটা নিয়ে কাজ করে তাতে ব্যবহার হয়। এই কোড ASCII কোড হতে পৃথক। এই কোড পদ্ধতিতে আটটি 8 বিট ব্যবহার হয় এবং নবম বিটটি প্যারিটি বিট হিসাবে যোগ করা হয়। EBCDIC কোডে 0 থেকে 9 সংখ্যার জন্য 1111, A  থেকে  Z  বর্ণের জন্য 1100, 1101 ও 1110 এবং বিশেষ চিহ্নের জন্য 0100, 0101, 0110 ও 0111 জোন বিট হিসাবে ব্যবহার করা হয়। এই কোডের মাধ্যমে 28 = 256  টি বর্ণ, সংখ্যা ও বিশেষ চিহ্নকে কোডিং করা হয়েছে। সারণীতে – ৩ এ EBCDIC কোড দেখানো হয়েছে।

Hollerith কোডঃ

Hollerith কোডটি বিশেষ ভাবে পাঞ্চ কার্ডে ব্যবহৃত হয়।

ইউনিকোড (Unicode)

বিশ্বের সকল ভাষার বর্ণমালা এবং চিহ্নসমূহকে একটিমাত্র কোড পদ্ধতির আওতাভূক্ত করতে Unicode পদ্ধতির উদ্ভব হয়েছে। বিশ্বের বড় বড় কম্পিউটার এবং সফটওয়্যার নির্মাতা প্রতিষ্ঠানগুলো এর উন্নয়নের জন্য কাজ করেছেন। ইউনিকোড পদ্ধতির স্ট্যান্ডার্ড নির্ধারণ এবং উন্নয়নের জন্য বিশ্বের একমাত্র অলাভজনক প্রতিষ্ঠান Unicode Consortium বর্তমানে কাজ করে যাচ্ছে। এটি বহুল প্রচলিত 16 বিট কোড এবং এর মাধ্যমে সর্বমোট 216 = 65536 টি অদ্বিতীয় ক্যারেকটার কম্পিউটারে উপস্থাপন করা যায়। পরবর্তী পোস্টে এ বিষয়ে আলোচনার প্রয়াস পাব ইনশাআল্লাহ।

সারণীতে – ৩: বর্ণমালা ও সংখ্যাগত ক্যারেকটারের সাপেক্ষে বিভিন্ন কোডের বাইনারী মানের উপস্থাপনাঃ

বর্ণ/অংক 6 বিট আভ্যন্তরীণ কোড 7 বিট ASCII 8 বিট EBCDIC 12 বিট Hollerith কোড
A 010001 1000001 11000001 12,1
B 010010 1000010 11000010 12,2
C 010011 1000011 11000011 12,3
D 010100 1000100 11000100 12,4
E 010101 1000101 11000101 12,5
F 010110 1000110 11000110 12,6
G 010111 1000111 11000111 12,7
H 011000 1001000 11001000 12,8
I 011001 1001001 11001001 12,9
J 100001 1001010 11010001 11,1
K 100010 1001011 11010010 11,2
L 100011 1001100 11010011 11,3
M 100100 1001101 11010100 11,4
N 100101 1001110 11010101 11,5
O 100110 1001111 11010110 11,6
P 100111 1010000 11010111 11,7
Q 101000 1010001 11011000 11,8
R 101001 1010010 11011001 11,9
S 110010 1010011 11100010 0,2
T 110011 1010100 11100011 0,3
U 110100 1010101 11100100 0,4
V 110101 1010110 11100101 0,5
W 110110 1010111 11100110 0,6
X 110111 1011000 11100111 0,7
Y 111000 1011001 11101000 0,8
Z 111001 1011010 11101001 0,9
0 000000 0110000 11110000 0
1 000001 0110001 11110001 1
2 000010 0110010 11110010 2
3 000011 0110011 11110011 3
4 000100 0110100 11110100 4
5 000101 0110101 11110101 5
6 000110 0110110 11110110 6
7 000111 0110111 11110111 7
8 001000 0111000 11111000 8
9 001001 0111001 11111001 9
Blank 110000 0100000 01000000 No Punch
. 011011 0101110 01001011 12,3,8
( 111100 0101000 01001101 12,5,8
+ 010000 0101011 01001110 12,6,8
* 101100 0101010 01011100 11,4,8
$ 101011 0100100 01011011 11,3,8
) 011100 0101001 01011101 11,5,8
/ 110001 0101111 01100001 0,1
, 111011 0111100 01101011 0,3,8
= 001011 0111101 01111110 6,8
100000 0101101 01100000 11


বুলিয়ান বীজগণিত


একটি ডিজিটাল সিস্টেমের লজিক্যাল বর্তনীসমূহ বিভিন্ন জটিল লজিক্যাল ফাংশন অনুযায়ী ডেভেলপ করা হয় যা বিশেষ এক ধরনের বীজগাণিতিক পদ্ধতির মাধ্যমে সহজে সমাধান ও সরল করা যায়। এই পদ্ধতির নাম ‘বুলিয়ান বীজগণিত’ একে কখনো কখনো ‘Switching Algebra’ও বলা হয়ে থাকে।

বুলিয়ান বীজগণিতের পরিচয়ঃ

গণিতশাস্ত্র এবং গাণিতিক যুক্তি বিদ্যায় ‘বুলিয়ান বীজগণিত’কে বীজগণিতের একটি শাখা হিসাবে গন্য করা হয়। বুলিয়ান বীজগণিতে ব্যবহৃত ভেরিয়েবলসমূহের দুটি স্তর বা মান থাকে একটি সত্য বা True’ এবং অপরটি মিথ্যা বা False’। লিখার সুবিধার্থে সত্যকে ‘1’ দ্বারা এবং ‘মিথ্যাকে ‘0’ দ্বারা প্রকাশ করা হয়। বুলিয়ান বীজগণিতের এই দ্বিস্তরীয় বৈশিষ্ট্যের কারনে পরবর্তী যুগে যখন কম্পিউটার এবং বিভিন্ন ডিজিটাল ইলেকট্রনিক সার্কিটে বাইনারী সংখ্যা পদ্ধতির ব্যবহার শুরু হয় তখন বিভিন্ন জটিল যৌক্তিক অপারেশনসমূহের সমাধান এবং সরলীকরণের ক্ষেত্রে বুলিয়ান বীজগণিত ব্যবহার করা হতো। তখন থেকেই গণিত শাস্ত্রের এ শাখাটি ব্যাবহারিকভাবে প্রকৌশল বিদ্যার সাথে সংশ্লিষ্ট হয়ে ব্যবহার হতে থাকে এবং বর্তমানে কম্পিউটার ও ডিজিটাল ইলেকট্রনিক্সের উন্নয়নে ব্যপকভাবে ব্যবহৃত হচ্ছে। ব্যবহারিক বা প্রয়োগিক ক্ষেত্রে বুলিয়ান বীজগণিত একটি বিশেষ ধরনের বীজগাণিতীয় পদ্ধতি যা দুটি লজিক অবস্থা ‘1’ এবং ‘0’ নিয়ে কাজ করে। ডিজিটাল সার্কিটসমূহ বহু সংখ্যক সুইচ নিয়ে গঠিত যার ‘ON’ অবস্থাকে লজিক ‘1’ এবং ‘OFF’ অবস্থাকে লজিক ‘0’ দ্বারা উপস্থাপন করা হয়, এবং যা বুলিয়ান বীজগণিতের দুটি স্তর ‘সত্য বা True’ এবং ‘মিথ্যা বা False এর সাথে খুবই সাদৃশ্যপূর্ণ। একারনেই ডিজিটাল সার্কিটসমূহের লজিক মেনিপুলেশনের (Manipulation) জন্য বুলিয়ান বীজগণিত একটি আদর্শ পদ্ধতি। Logical Veriable এবং Logical Operation সমন্বয়ে গঠিত বীজগণিতই বুলিয়ান বীজগণিত।

উৎপত্তিঃ

Photo of Boole

১৮৪৭ সালে ইংলিশ গণিতবিদ জর্জ বুলি (George Boole) তার বই The Mathematical Analysis of Logic’ এ লজিক সমীকরণ বিশ্লেষণের মূল ও আদি সূত্রসমূহ গাণিতিক পরিভাষায় উস্থাপন করেন যা বর্তমানে আধুনিক ডিজিটাল ইকুইপমেন্ট ডিজাইন এবং অধিকাংশ প্রোগ্রামিং ল্যাংগুয়েজে কোর ডাটা টাইপ হিসাবে ব্যবহৃত হচ্ছে। যুক্তি বিশ্লেষণের প্রয়োজনে ১৮৫৪ সালে জর্জ বুলি তার অপর গ্রন্থ An Investigation of the Laws of Thought এ একটি বিশেষ ধরণের বীজগাণিতিক পদ্ধতি উপস্থাপন করেন যার সাহায্যে লজিক ‘Logic’ এর ‘Systematic Treatment’ বিষয়ে ধারণা দেয়া হয় এবং এটি বর্তমানে বুলিয়ান বীজগণিত নামে পরিচিত। কিন্তু তার এই আবিষ্কার ১৯৩৮ সালের পূর্ব পর্যন্ত বিশেষ কোন ব্যবহারিক কাজে আসেনি। পরবর্তী সময়ে গত বিংশ শতাব্দীর গোড়ার দিকে ইংলিশ গবেষক William Stanley Jevons’, জার্মান গণিতবিদ Friedrich Wilhelm Karl Ernst Schröder’, এবং আমেরিকান গণিতবিদ Edward Vermilye Huntington’ প্রমুখ গবেষকগণের গবেষণা দ্বারা বুলিয়ান বীজগণিত আরো কিছুটা গঠিত তত্ত্বভিত্তিক গাণিতিক কাঠামো লাভ করে। পরবর্তীতে ১৯০৪ সালেE. V. Huntington’ কিছু স্বতঃসিদ্ধ উদ্ভাবন করেন যা বুলিয়ান বীজগণিতকে আরো গঠিত রূপে সংগায়িত করতে সাহায্য করে। ১৯৩০ সালে আমেরিকান গণিতবিদ Claude Elwood Shannon’ সুইচিং সার্কিট নিয়ে কাজ করার সময় প্রত্যক্ষ করেন যে, বুলিয়ান বীজগণিতের স্বতঃসিদ্ধসমূহ ব্যবহারিকভাবে সুইচিং সার্কিট বাস্তবায়নের কাজে লাগানো যায় এবং তিনি টেলিফোনের সুইচিং বর্তনীতে সর্বপ্রথম বুলিয়ান বীজগণিতের বাস্তব প্রয়োগ ঘটান। ১৯৩৮ সালে স্যার শ্যানন Two-Valued Boolean Algebra’ পদ্ধতির উন্নয়ন করেন এবং ব্যাখ্যা করেন যে, বাইস্ট্যাবল ইলেকট্রিক সুইচিং সার্কিটের বৈশিষ্ট্যসমূহ এই বীজগাণিতীয় পদ্ধতির মাধ্যমে উপস্থাপন করা সম্ভব। বর্তমানে বুলিয়ান বীজগণিত ডিজিটাল সিস্টেম ডিজাইনে ব্যপকভাবে ব্যবহার হচ্ছে।

বুলিয়ান বীজগণিতের অন্তর্গত বিষয়াদিঃ

১। লজিক্যাল ভেরিয়েবল
২। কনস্ট্যান্ট বা ধ্রুবক
৩। অপারেটর
৪। স্বতঃসিদ্ধ ও উপপাদ্যসমূহঃ

১।         লজিক্যাল ভেরিয়েবলঃ সাধারণ বীজগণিতের মতই বুলিয়ান বীজগণিতে ভেরিয়েবলের ব্যবহার রয়েছে যাদের বিভিন্ন ইংরেজী বর্ণ A, B, C, D ইত্যাদি দ্বারা প্রকাশ করা হয় তবে বুলিয়ান ভেরিয়েবলসমূহের লজিক্যাল মান ‘সত্য’ এবং ‘মিথ্যা’ অর্থাৎ ‘1’ এবং ‘0’ এ দুটির মধ্যেই পরিবর্তনশীল।

২।         কনস্ট্যান্ট বা ধ্রুবকঃ বুলিয়ান বীজগণিতে ‘1’ এবং ‘0’ এ দুটি লজিক্যাল ধ্রুবকের ব্যবহার রয়েছে। ধ্রুবকের মান সর্বদা স্থির থাকে। মনে রাখতে হবে যে, দেখতে একই রকম মনে হলেও বুলিয়ান বীজগণিতে ব্যবহৃত ‘1’ ও ‘0’ এবং বাইনারী অংক ‘1’ ও ‘0’ একই বিষয় নয়। বাইনারী সংখ্যাপদ্ধতির ‘1’ এবং ‘0’ হলো দুটি অংক কিন্তু বুলিয়ান বীজগণিতের ‘1’ হলো ‘লজিক সত্য’ এবং ‘0’ হলো ‘লজিক মিথ্যার’ সংক্ষিপ্ত উপস্থাপনা।

৩।        অপারেটরঃ ভেরিয়েবল এবং কনস্ট্যান্টের উপর বিভিন্ন লজিক্যাল অপারেশন চালানোর জন্য ব্যবহৃত প্রতীক বা চিহ্নকে অপারেটর বলা হয়। বুলিয়ান বীজগণিতে ব্যবহৃত মৌলিক অপারেটর তিনটি যেমনঃ AND যাকে (.) চিহ্ন দ্বারা, OR যাকে (+) চিহ্ন দ্বারা এবং NOT যাকে ´ অথবা ¯ চিহ্ন দ্বারা প্রকাশ করা হয়।

৪।         স্বতঃসিদ্ধসমূহঃ (Postulates): বুলিয়ান বীজগণিতে শুধুমাত্র বুলিয়ান যোগ এবং বুলিয়ান গুণের সাহায্যে সকল হিসাব করা হয়। যোগ এবং গুণের ক্ষেত্রে এই বীজগণিত কিছু বিশেষ নিয়ম মেনে চলে। এই নিয়মসমূহকে স্বীকার্য বা স্বতঃসিদ্ধ বা ‘Postulates’ বলা হয়।

বুলিয়ান যোগের ক্ষেত্রে স্বতঃসিদ্ধসমূহ নিম্নরূপঃ

0 + 0 = 0 ………………. (i)
0 + 1 = 1  ……………… (ii)
1 + 0 = 1  ……………… (iii)
1 + 1 = 1  ……………… (iv)

সমীকরণ (i) হতে সমীকরণ (iii) পর্যন্ত যোগগুলি আমাদের পরিচিত বীজগণিতের নিয়মের সাথে মিল আছে কিন্তু সমীকরণ (iv) এর সাথে আমাদের পরিচিত বীজগণিতের কোন মিল নেই। সুতরাং বুঝা যাচ্ছে বুলিয়ান বীজগণিতের ‘+’ চিহ্ন সাধারণ যোগকে বুঝায় না। বুলিয়ান যোগকে লজিক্যাল OR অপারেশন বলা হয়।

বুলিয়ান গুণের ক্ষেত্রে বুলিয়ান বীজগণিতের স্বতঃসিদ্ধসমূহ নিম্নরূপঃ

0 . 0 = 0
0 . 1 = 0
1 . 0 = 0
1 . 1 = 1

বুলিয়ান গুণকে লজিক্যাল AND অপারেশন বলা হয়।

বুলিয়ান পূরক (Complement):

বুলিয়ান বীজগণিতের ভাষায় ‘0’ এবং ‘1’ কে একটি অপরটির পূরক বলা হয়। পূরককে প্রকাশ করা হয় NOT অপারেটরের চিহ্ন ´ অথবা ¯ দ্বারা। উদাহরণসরূপঃ ‘0’ এর পূরক ‘1’ এবং ‘1’ এর পূরক ‘0’। উক্ত বিষয়টি বুলিয়ান ভেরিয়েবলের জন্য লেখা হয় ‘A’ এর পূরক ‘A̅’ আবার ‘A̅’ এর পূরক ‘A’। কখনো কখনো ‘A̅’ কে A´ দ্বারাও প্রকাশ করা হয়। যদি A = 0 হয় তবে A̅ = 1 আবার A = 1 হলে A̅ = 1 হবে।

হান্টিংটনের (Huntington’s) স্বতঃসিদ্ধসমূহঃ

১৯০৪ সালেE. V. Huntington’ কিছু স্বতঃসিদ্ধ ব্যাখ্যা করেন যা বুলিয়ান বীজগণিতকে সুগঠিত রূপে সংগায়িত করতে সাহায্য করে তবে শুধু হান্টিংটনের স্বতঃসিদ্ধসমূহ দ্বারা পরিপূর্ণভাবে বুলিয়ান বীজগণিতকে সংগায়িত করা যায় না আরো কিছু স্বতঃসিদ্ধ প্রয়োজন হয়। বুলিয়ান বীজগণিত হান্টিংটনের স্বতঃসিদ্ধান্তসমূহ মেনে চলে যা নিম্নে উল্লেখিত হয়েছে –

১।         (ক)       + অপারেটরের সাপেক্ষে Closure           (খ)    .   অপারেটরের সাপেক্ষে Closure

২।       (ক)       + অপারেটরের সাপেক্ষে 0 দ্বারা একটি Identity Element  যেমনঃ X+0 = 0+X = X  (খ)    .   অপারেটরের সাপেক্ষে 1 দ্বারা একটি Identity Element  যেমনঃ X.1 = 1.X = X

৩।     বিনিময় সূত্রঃ (ক)  + অপারেটরের সাপেক্ষে বিনিময় যেমনঃ X+Y = Y+X   (খ)     .   অপারেটরের সাপেক্ষে বিনিময় যেমনঃ X.Y = Y.X

৪।     বিতরণ সূত্রঃ (ক)   + অপারেটরকে . এর উপর বিতরণ, যেমনঃ X+(Y.Z)=(X+Y).(X+Z)    (খ)  .  অপারেটরকে + এর উপর বিতরণ, যেমনঃ X.(Y+Z)=(X.Y)+(X.Z)

৫।  সেট B এর প্রতিটি উপাদানের কমপ্লিমেন্ট উক্ত সেটের একটি উপাদান হবে, অর্থাত X∈B হলে X′∈B হবে। এক্ষেত্রেঃ (ক) X+X′=1 এবং   (খ) X.X′=0 হবে।

৬। সেট B এর নূন্যতম দুটি আলাদা উপাদান থাকতে হবে যেখানে উপাদান দুটি পরস্পর অসমান হবে। যেমনঃ X,Y∈B যেখানে X≠Y। অর্থাত বুলিয়ান স্বতঃসিদ্ধসমূহ ব্স্তবায়নের জন্য নূন্যতম দুটি Logical Element প্রয়োজন।

**        হান্টিংটনের স্বতঃসিদ্ধসমূহে অনুসংগ সূত্র বা (Associative Law) অন্তর্ভূক্ত ছিল না যদিও তা বুলিয়ান বীজগণিতে ব্যবহৃত হয়।

***      অনুসংগ সূত্রঃ       (ক)     X+(Y+Z)=(X+Y)+Z=Y+X+Z     (খ)     X.(Y.Z)=(X.Y).Z=Y.X.Z

***      উপরের স্বতঃসিদ্ধসমূহে X এবং Y বুলীয় চলক বা লজিক্যাল ভেরিয়েবল এবং B হলো বুলিয়ান বীজগণিতে ব্যবহৃত উপাদানসমূহের সেট।

বুলিয়ান বীজগণিত এবং সাধারণ বীজগণিতের মধ্যে তুলনাঃ

১।  বিতরণ সূত্র + অপারেটরকে   এর উপর বিতরণ, যেমনঃ X+(Y.Z)=(X+Y).(X+Z)   বুলিয়ান বীজগণিতের ক্ষেত্রে প্রযোজ্য হলেও সাধারণ বীজগণিতের ক্ষেত্রে প্রযোজ্য নয়।
২।  বুলিয়ান বীজগণিতে ডিভিশন এবং সাবট্রাকশন অপারেটরের ব্যবহার নেই যা সাধারণ বীজগণিতে রয়েছে।
৩। বুলিয়ান বীজগণিতে কমপ্লিমেন্ট বা NOT অপারেটরের ব্যবহার আছে যা সাধারণ বীজগণিতে নেই।
৪।  সাধারণ বীজগণিত বাস্তব সংখ্যা নিয়ে কাজ করে যার সেটে অসীম সংখ্যক উপাদান থাকতে পারে। কিন্তু দ্বি-মানের (Two Valued) বুলিয়ান বীজগণিতের সেটে শুধুমাত্র দুটি উপাদান 1 এবং 0 থাকে।

দ্বি-মানের বুলিয়ান বীজগণিত (Two Valued Boolean Algebra):

দুই উপাদান বিশিষ্ট কোন সেটের (যেমনঃ B = {1, 0}) উপর বুলিয়ান বীজগণিতের স্বতঃসিদ্ধসমূহ প্রযুক্ত হলে তাকে দ্বি-মানের (Two Valued) বুলিয়ান বীজগণিত বলা হয়।

ইতোপূর্বেই আমরা জানি ডিজিটাল সার্কিটসমূহ দুটি লজিক নিয়ে কাজ করে একটি 0 এবং অপরটি 1 তাই ডিজিটাল ইলেকট্রনিক্সের উন্নয়ন এবং কার্যক্রমের সাথে বুলিয়ান বীজগণিতের যে রূপটি সংগতিপূর্ণ তা হলো দ্বি-মানের বুলিয়ান বীজগণিত বা ‘Two Valued’ বুলিয়ান বীজগণিত। যেহেতু আমাদের আলোচ্য মূল বিষয় ডিজিটাল ইলেকট্রনিক্স তাই এই প্রবন্ধটির পরবর্তী অংশ শুধুমাত্র দ্বি-মানের বুলিয়ান বীজগণিত নিয়ে আলোচনা করা হবে।

দ্বি-মানের বুলিয়ান বীজগণিতের ক্ষেত্রে স্বতঃসিদ্ধসমূহের প্রমাণঃ

দ্বি-মানের বুলিয়ান বীজগণিতের ক্ষেত্রে স্বতঃসিদ্ধসমূহের প্রমাণ সত্যক সারণী বা Truth টেবিল-১, ২, ৩ ও ৪ এর মাধ্যমে দেখানো হলোঃ
TVBA

১।         উপরোক্ত টেবিল হতে দেখা যায় যে, প্রতিটি লজিক্যাল অপারেশনের ফলাফল 1 অথবা 0। যেখানে 1, 0∈B অর্থাত 1এবং 0 উভয়ে সেট B এর উপাদান সুতরাং দ্বি-মানের বুলিয়ান বীজগণিতের ক্ষেত্রে + ও . অপারেটরের সাপেক্ষে Closure প্রমাণিত।

২।         উপরোক্ত টেবিল হতে দেখা যায় যে, (ক) 0+0=0, 0+1=1+0=1 এবং    (খ) 1.1=1, 1.0=0.1=0 সুতরাং হান্টিংটনের ২ নং Postulate প্রমাণিত।

৩।         বিনিময় সূত্র বাইনারী অপারেটর টেবিলের স্বাভাবিক নিয়মতান্ত্রিকতার মাধ্যমে প্রমাণিত।

৪।         বিতরণ সূত্র X.(Y+Z)=(X.Y)+(X.Z) এবং X+(Y.Z)=(X+Y).(X+Z) প্রমাণের জন্য নিম্নের টেবিল-৪ প্রত্যক্ষ করি –

Table-4

উপরোক্ত টেবিলের মাধ্যমে দেখা যায় X, Y এবং Z এর সম্ভাব্য সকল মানের ক্ষেত্রে সর্বদা X.(Y+Z)=(X.Y)+(X.Z) এবং X+(Y.Z)=(X+Y).(X+Z) প্রমাণিত।

৫।         (ক) যখন X=0 তখন 0+0ʹ=0+1=1 আবার যখন X=1 তখন 1+1ʹ=1+0=1 সুতরাং X এর সকল মানের জন্য X+X̅=1 প্রমাণিত।

(ক) যখন X=0 তখন 0.0ʹ=0.1=0 আবার যখন X=1 তখন 1.1ʹ=1.0=0 সুতরাং X এর সকল মানের জন্য X.X̅=0 প্রমাণিত।

৬।         টু-ভ্যাল্যূড বুলিয়ান বীজগণিতের ক্ষেত্রে কেবল দুটি নির্দিষ্ট উপাদান 0 এবং 1 আছে যেখানে 0≠1, সুতরাং টু-ভ্যাল্যূড বুলিয়ান বীজগণিতের ক্ষেত্রে Huntington এর ৬নং Postulate সিদ্ধ।

দ্বৈত নীতি (Duality):

লক্ষ্য করলে দেখা যায় হান্টিংটনের স্বতঃসিদ্ধসমূহ জোড়ায় জোড়ায় পার্ট-(ক) এবং পার্ট-(খ) তে উপস্থাপিত। এদের বাইনারী অপারেটর এবং Identity Element পরস্পরের মাঝে বদল করে অপর বৈধ সমীকরণটি পাওয়া যায়। বুলিয়ান বীজগণিতের এই গুরুত্ত্বপূর্ণ বৈশিষ্ট্যকে দ্বৈত নীতি বা Duality Principle বলা হয়। AND এবং OR অপারেটরের সাথে সম্পর্কযুক্ত সকল বুলিয়ান স্বতঃসিদ্ধ, উপপাদ্য এবং সমীকরণসমূহ দ্বৈত নীতি মেনে চলে। যদি একটি বৈধ সমীকরণ থাকে তবে উহার দুটি বিষয় পরিবর্তন করে অপর বৈধ সমীকরণটি পাওয়া যাবে। উক্ত দুটি বিষয় নিম্নরূপঃ

১।         AND এবং OR অপারেটরকে পরস্পর Interchange বিনিময় করে। অর্থাৎ AND (.) এর পরিবর্তে OR (+) এবং OR (+) এর পরিবর্তে AND (.) ব্যবহার করে।

২।         ‘0’ এবং ‘1’ লজিকদ্বয়কে পরস্পর Interchange বিনিময় করে। অর্থাৎ ‘0’ এর পরিবর্তে ‘1’ এবং ‘1’ এর পরিবর্তে ‘0’ ব্যবহার করে।

উদাহরণসরূপঃ    1+1=1 এই সমীকরণে দ্বৈত নীতি ব্যবহার করে পাই 0.0 = 0 সুতরাং এই সমীরণও বৈধ। অনুরূপঃ AB+AB̅=A সমীকরণে দ্বৈত নীতি ব্যবহার করে পাই (A+B).(A+B̅)=A এই সমীরণও বৈধ।

হান্টিংটনের স্বতঃসিদ্ধসমূহ দ্বৈত নীতি মেনে চলে –

হান্টিংটনের ২য় স্বতঃসিদ্ধে রয়েছে X+0 = 0+X = X ইহাতে দ্বৈত নীতি প্রয়োগ করে পাই X.1 = 1.X = X যা উক্ত জোড়ের অপর সমীকরণ।

হান্টিংটনের ৩য় স্বতঃসিদ্ধে বা বিনিময় সূত্রে রয়েছে X+Y = Y+X ইহাতে দ্বৈত নীতি প্রয়োগ করে পাই X.Y = Y.X যা উক্ত জোড়ের অপর সমীকরণ।

সুতরাং হান্টিংটনের স্বতঃসিদ্ধসমূহ দ্বৈত নীতি মেনে চলে।

ভেনচিত্র (Venn Diagram):

V_D2VENN_D_11880 সালে ইংরেজ যুক্তিবিদ (John Venn) জন ভেন Eulerian Circle নামে একটি বিশেষ ধরণের চিত্র পদ্ধতি উপস্থাপন করেন যা বর্তমানে বুলিয়ান এক্সপ্রেশনসমূহ ব্যাখ্যা ও অনুধাবনের জন্য খুবই সহায়ক। পরবর্তীতে তার এই চিত্রটি ভেনচিত্র বা Venn Diagram নামে ডাকা হয়। এই চিত্রে একটি আয়তক্ষেত্রের মাঝে কতকগুলি উপরিপাতিত বৃত্তক্ষেত্র অংকিত থাকে। প্রতিটি বৃত্তক্ষেত্র একটি লজিক্যাল চলকের প্রতিনিধিত্ব করে, অর্থাৎ প্রতিটি বৃত্তক্ষেত্রকে একটি করে লজিক্যাল চলক দ্বারা সংগায়িত করা হয়। বৃত্তের অভ্যন্তরীণ ক্ষেত্রকে উক্ত চলকের নামে ডাকা হয় এবং বাহিরের ক্ষেত্রকে উক্ত চলকের কমপ্লিমেন্ট নামে ডাকা হয়। যেমনঃ চিত্রে বৃত্তের অভ্যন্তরের অংশ X হলে বাহিরের অংশ X̅ বা বৃত্তের অভ্যন্তরের ক্ষেত্র X=1 হলে বাহিরের অংশ X̅=0 হবে। আয়তক্ষেত্রের অভ্যন্তরে দুটি উপরিপাতিত চলকের ক্ষেত্রে চারটি পৃথক ক্ষেত্র পাওয়া যায়। X এবং Y উভয়ের বহির্ভূত অংশ X̅ Y̅। X এর অভ্যন্তরে কিন্তু Y এর বহির্ভূত তা XY̅। আবার Y এর অভ্যন্তরে কিন্তু X এর বহির্ভূত তা X̅Y উভয় বৃত্তের Overlamping অংশ XY উভয় বৃত্তের মোট ক্ষেত্র X+Y দ্বারা সংগায়িত।

VD4VD3X+XY=X স্বতঃসিদ্ধটি ভেনচিত্রের মাধ্যমে উপস্থাপন করতে চাইলে চিত্র-খ এর মত দুই বৃত্ত বিশিষ্ট ভেনচিত্র প্রয়োজন। চিত্র-খ দেখলে দেখা যায় XY ক্ষেত্র বৃত্তক্ষেত্র X এর অন্তর্ভূক্ত সুতরাং X+XY=X প্রমাণিত।

আবার বিতরণ সূত্র X(Y+Z)=XY+XZ এর ক্ষেত্রে ভেনচিত্রে তিনটি উপরিপাতিত বৃত্তক্ষেত্র XYZ আছে যাতে আটটি পৃথক ক্ষেত্র আছে এবং এতে XY+XZ ক্ষেত্র X(Y+Z) ক্ষেত্রের সমান যা চিত্র-গ এবং চিত্র-ঘ এ দেখানো হয়েছে। সুতরাং X(Y+Z)=XY+XZ প্রমাণিত।

ডি-মরগ্যানের উপপাদ্যঃ

বুলীয় বীজগণিত প্রবর্তনের পর অনেক গণিতবিদ একে হাস্যকর অভিহিত করেছিলেন। বুলীয় বীজগণিতের আপাত সরলতাই ছিল এই হাস্যরসের কারন। তখন ইংরেজ গণিতবিদ Augustus De Morgan বুলীয় বীজগণিত নিয়ে বিস্তর গবেষণা করে প্রয়োজনীয় দুটি উপপাদ্য প্রতিষ্ঠা করেন। যা লজিক সরলীকরনের জন্য ডিজিটাল ইলেকট্রনিক্সে বহুল ব্যবহৃত উপপাদ্য। উপপাদ্য দুটির বিবৃতি নিম্নরূপঃ

DEMORGAN

প্রথম উপপাদ্যঃ কোন বুলিয়ান এক্সপ্রেশনের চলকসমূহের লজিক্যাল অর অপারেশনের কমপ্লিমেন্ট উক্ত চলকসমূহের কমপ্লিমেন্ট মানের লজিক্যাল এন্ড অপাপরেশনের সমান। যেমনঃ কোন বুলিয়ান এক্সপ্রেশনের দুটি চলক X এবং Y হলে (X+Y)′=X′.Y′ হবে। অনুরূপঃ N সংখ্যক চলকের ক্ষেত্রে  (X1+X2+ …….. +XN)́ = X1́.X2́…….. XŃ    হবে।

দ্বিতীয় উপপাদ্যঃ কোন বুলিয়ান এক্সপ্রেশনের চলকসমূহের লজিক্যাল এন্ড অপারেশনের কমপ্লিমেন্ট উক্ত চলকসমূহের কমপ্লিমেন্ট মানের লজিক্যাল অর অপাপরেশনের সমান। যেমনঃ কোন বুলিয়ান এক্সপ্রেশনের দুটি চলক X এবং Y হলে (X.Y)́= X́+Ý  হবে। অনুরূপঃ N সংখ্যক চলকের ক্ষেত্রে (X1.X2. …….. .XN)́ = X1́+X2́+…….. +XŃ  হবে।

প্রমাণঃ দুই চলকের জন্য বুলিয়ান বীজগণিতের প্রমাণ Truth টেবিলের মাধ্যমে দেখানো হলোঃ

De-Morgan's

উপরের Truth টেবিল হতে দেখা যায় X এবং Y এর সকল মানের ক্ষেত্রে (X+Y)′=X′.Y′ হয় এবং (X.Y)′= X′+Ý′ হয়। অনুরূপঃ N সংখ্যক চলকের ক্ষেত্রে দেখানো যায়  (X1+X2+ …….. +XN)́ = X1́.X2́…….. XŃ  এবং (X1.X2. …….. .XN)́ = X1́+X2́+…….. +XŃ  প্রমাণিত।

বুলিয়ান বীজগণিতের মৌলিক স্বতঃসিদ্ধ ও উপপাদ্যসমূহের তালিকাঃ

১। (ক) X+0 = 0+X = X (খ) X.1 = 1.X = X
২। বিনিময় সূত্রঃ (ক) X+Y = Y+X (খ) X.Y = Y.X
৩। বিতরণ সূত্রঃ (ক) X+(Y.Z)=(X+Y).(X+Z) (খ) X.(Y+Z)=(X.Y)+(X.Z)
৪। (ক) X+X′=1 এবং (খ) X.X′=0
৫। অনুসংগ সূত্রঃ (ক) X+(Y+Z)=(X+Y)+Z=Y+X+Z (খ) X.(Y.Z)=(X.Y).Z=Y.X.Z

 


লজিক গেট


লজিক গেট বিশেষ ধরণের ইলেকট্রনিক সার্কিট যার এক বা একাধিক ইনপুট থাকে ও কেলমাত্র একটি আউটপুট থাকে এবং ইনপুটসমূহের লজিক অবস্থার উপর ভিত্তি করে আউটপুট প্রদান করে। লজিক গেটসমূহ লজিক হাই ‘1’ এবং লজিক লো ‘0’ এই দুটি বাইনারী লজিক নিয়ে কাজ করে।

প্রকারভেদঃ

লজিক গেটসমূহ মূলতঃ দুই ধরণের হয় যেমনঃ (১) মৌলিক গেট এবং (২) যৌগিক গেট।

মৌলিক গেটঃ

যে লজিক গেট একক এবং যাকে বিশ্লেষণ করলে অন্য কোন গেট পাওয়া যায় না তাকে মৌলিক গেট বলা হয়। উল্লেখ্য যে, মৌলিক গেটসমূহ ব্যবহার করে অন্য সকল যৌগিক গেটসমূহ তৈরী করা সম্ভব। মৌলিক গেট তিনটি। যেমনঃ

(১) অর গেট (OR Gate)
(২) এন্ড গেট (AND Gate)
(৩) নট গেট বা ইনভার্টার (NOT Gate)

নট গেটকে কখনো কখনো ইনভার্টার বলা হয়।

যৌগিক গেটঃ

যে গেট একক নয় এবং যাকে বিশ্লেষণ করলে এক বা একাধিক মৌলিক গেট পাওয়া যায় তাকে যৌগিক গেট বলা হয়। যেমনঃ

(১) নর গেট (NOR Gate)
(২) ন্যান্ড গেট (NAND Gate)
(৩) এক্স-অর গেট (X-OR Gate)
(৪) এক্স-নর গেট (X-NOR Gate)

মৌলিক গেটসমূহের বর্ণনাঃ

(১) অর গেটঃ অর গেটের আউটপুট এর ইনপুটসমূহের ‘লজিক্যাল অর’ অপারেশনের সমান অর্থাত Y=A+B। এর প্রতীক এবং ট্রুথ টেবিল বা সত্যক সারণী নিচে দেয়া হলোঃ

অর গেটের প্রতীক ও ট্রুথ টেবিল

অর গেটের প্রতীক ও ট্রুথ টেবিল

(২) এন্ড গেটঃ এন্ড গেটের আউটপুট এর ইনপুটসমূহের ‘লজিক্যাল এন্ড অপারেশনের সমান অর্থাত Y=A.B। এর প্রতীক এবং ট্রুথ টেবিল বা সত্যক সারণী নিচে দেয়া হলোঃ

এন্ড গেটের প্রতীক ও ট্রুথ টেবিল

এন্ড গেটের প্রতীক ও ট্রুথ টেবিল

(৩) নট গেটঃ যে গেটের একটি মাত্র ইনপুট ও একটি আউটপুট থাকে এবং আউটপুট ইনপুটের ইনভার্টেড মানের সমান তাকে নট গেট বা ইনভার্টার (NOT Gate) বলা হয় এর আউটপুট Y=Ā। এর প্রতীক এবং ট্রুথ টেবিল বা সত্যক সারণী নিচে দেয়া হলোঃ

নট গেটের প্রতীক ও ট্রুথ টেবিল

নট গেটের প্রতীক ও ট্রুথ টেবিল

যৌগিক গেটসমূহের বর্ণনাঃ

(১) নর গেটঃ অর গেটের আউটপুট এর সাথে একটি নট গেট সংযুক্ত করলে একটি নর গেট পাওয়া যায়। এর আউটপুট ইনপুটসমূহের ‘লজিক্যাল নর’ অপারেশনের সমান। এর প্রতীক এবং ট্রুথ টেবিল বা সত্যক সারণী নিচে দেয়া হলোঃ

নর গেটের প্রতীক ও ট্রুথ টেবিল

নর গেটের প্রতীক ও ট্রুথ টেবিল

(২) ন্যান্ড গেটঃ

এন্ড গেটের আউটপুট এর সাথে একটি নট গেট সংযুক্ত করলে একটি ন্যান্ড গেট পাওয়া যায়। এর আউটপুট ইনপুটসমূহের লজিক্যাল ন্যান্ডঅপারেশনের সমান। এর প্রতীক এবং ট্রুথ টেবিল বা সত্যক সারণী নিচে দেয়া হলোঃ

ন্যান্ড গেটের প্রতীক ও ট্রুথ টেবিল

ন্যান্ড গেটের প্রতীক ও ট্রুথ টেবিল

(৩) এক্স-অর গেটঃ এক্স-অর গেটের আউটপুট এর ইনপুটসমূহের ‘লজিক্যাল এক্স-অর’ অপারেশনের সমান। এর প্রতীক এবং ট্রুথ টেবিল বা সত্যক সারণী নিচে দেয়া হলোঃ

এক্স-অর গেটের প্রতীক ও ট্রুথ টেবিল

এক্স-অর গেটের প্রতীক ও ট্রুথ টেবিল

(৩) এক্স-নর গেটঃ এক্স-নর গেটের আউটপুট এর ইনপুটসমূহের ‘লজিক্যাল এক্স-নর’ অপারেশনের সমান। এর প্রতীক এবং ট্রুথ টেবিল বা সত্যক সারণী নিচে দেয়া হলোঃ

এক্স-নর গেটের প্রতীক ও ট্রুথ টেবিল

এক্স-নর গেটের প্রতীক ও ট্রুথ টেবিল

লজিক গেটসমূহের সমতূল্য বর্তনীঃ

বিভিন্ন গেটের সমতূল্য বর্তনী

বিভিন্ন গেটের সমতূল্য বর্তনী

 

ট্রুথ টেবিল কি?

কোন লজিক সার্কিটের ইনপুট এবং আউটপুটের মধ্যকার সম্পর্ক এবং লজিক্যাল অবস্থা যে টেবিলের মাধ্যমে উপস্থাপন করা হয় তাকে ট্রুথ টেবিল বা সত্যক সারণী বলা হয়।

ইউনিভার্সাল গেটঃ

যে লজিক গেটের মাধ্যমে OR, AND এবং NOT এই তিনটি মৌলিক গেট বাস্তবায়ন করা যায় তাকে ইউনিভার্সাল গেট বলা হয়। NAND এবং NOR এই দুটি ইউনিভার্সাল গেট।

ইউনিভার্সাল গেট ব্যবহার করে মৌলিক গেটসমূহ সম্পাদনঃ

NAND গেট ব্যবহার করে নিচের চিত্রে OR, AND এবং NOT এই তিনটি মৌলিক গেট বাস্তবায়ন দেখানো হলোঃ

NAND_PRIMARY

NOR গেট ব্যবহার করে নিচের চিত্রে OR, AND এবং NOT এই তিনটি মৌলিক গেট বাস্তবায়ন দেখানো হলোঃ

NOR_PRIMARY