একটি বাইনারি সংখ্যা হল এমন একটি সংখ্যা যার মাত্র দুটি বিট 0 এবং 1 আছে।
ধূসর কোড হল একটি বিশেষ ধরনের বাইনারি সংখ্যা যার একটি বৈশিষ্ট্য রয়েছে যা কোডের পরপর দুটি সংখ্যা এক বিটের বেশি ভিন্ন হতে পারে না। ধূসর কোডের এই বৈশিষ্ট্যটি এটিকে আরও কে-ম্যাপ, ত্রুটি সংশোধন, যোগাযোগ, ইত্যাদি দরকারী করে তোলে।
এটি বাইনারি থেকে ধূসর কোডে রূপান্তরকে প্রয়োজনীয় করে তোলে। সুতরাং, আসুন বাইনারী থেকে গ্রে কোডে রূপান্তর করার জন্য একটি অ্যালগরিদম দেখি পুনরাবৃত্তি ব্যবহার করে .
উদাহরণ
ধূসর কোড সহ
এর একটি উদাহরণ নেওয়া যাকInput : 1001 Output : 1101
অ্যালগরিদম
Step 1 : Do with input n : Step 1.1 : if n = 0, gray = 0 ; Step 1.2 : if the last two bits are opposite, gray = 1 + 10*(go to step 1 passing n/10). Step 1.3 : if the last two bits are same, gray = 10*(go to step 1 passing n/10). Step 2 : Print gray. Step 3 : EXIT.
উদাহরণ
#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