বাইনারি নম্বর হলো এমন একটি নম্বর যার শুধু দুটি বিট থাকে ০ এবং ১।
গ্রে কোড হলো বাইনারি নম্বরের একটি বিশেষ ধরন যার বৈশিষ্ট্য হলো কোডের দুটি egymাোগত নম্বর এক বিটের বেশি পার্থক্য রাখে না। এই বৈশিষ্ট্যের কারণে গ্রে কোড K-ম্যাপ, ত্রুটি সংশোধন, যোগাযোগ ইত্যাদিতে বেশি কার্যকর।
এটি বাইনারি থেকে গ্রে কোডে রূপান্তরকে প্রয়োজনীয় করে তোলে। তাই আসুন বাইনারি থেকে গ্রে কোড রিকার্শন ব্যবহার করে রূপান্তর করার অ্যালগরিদম দেখি।
উদাহরণ
গ্রে কোডের একটি উদাহরণ নিই
ইনপুট: 1001 আউটপুট: 1101
অ্যালগরিদম
ধাপ ১: ইনপুট n দিয়ে নিম্নলিখিত কাজ করুন:
ধাপ ১.১: যদি n = 0 হয়, তবে gray = 0।
ধাপ ১.২: যদি শেষ দুটি বিট বিপরীত হয়, তবে
gray = 1 + 10 * (ধাপ ১-এ ফিরে যান n/10 পাস করে)।
ধাপ ১.৩: যদি শেষ দুটি বিট একই হয়, তবে
gray = 10 * (ধাপ ১-এ ফিরে যান n/10 পাস করে)।
ধাপ ২: gray প্রিন্ট করুন।
ধাপ ৩: خروج।
উদাহরণ
#include <iostream>
using namespace std;
int binaryGrayConversion(int n) {
if (!n)
return 0;
int a = n % 10;
int b = (n / 10) % 10;
if ((a && !b) || (!a && b))
return (1 + 10 * binaryGrayConversion(n / 10));
return (10 * binaryGrayConversion(n / 10));
}
int main() {
int binary_number = 100110001;
cout << "The binary number is " << binary_number << endl;
cout << "The gray code conversion is " << binaryGrayConversion(binary_number);
return 0;
}
আউটপুট
The binary number is 100110001 The gray code conversion is 110101001