কোড পদ্ধতি এবং রূপান্তরসমূহ

_

ভূমিকাঃ

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

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

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

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

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

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

প্রকারভেদঃ

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

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

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

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

যদি 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 কোড হবে 1100Excess-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

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

HCPC

অর্থাত 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 কোডের উদ্ভাবক
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, 11011110 এবং বিশেষ চিহ্নের জন্য 0100, 0101, 01100111 জোন বিট হিসাবে ব্যবহার করা হয়। এই কোডের মাধ্যমে 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

_____________________________________________________

সূত্রঃ

Digital Principles and Logic Design – A Saha & N. Manna
ডিজিটাল ইলেকট্রনিক্স – মোঃ মোতাহার হোসেন।
উচ্চ মাধ্যমিক কম্পিউটার শিক্ষা – প্রকৌশলী মুজিবুর রহমান



Share this post

Post Comment