Số nhị phân là số chỉ có hai bit 0 và 1.
Mã màu xám là một loại số nhị phân đặc biệt có thuộc tính hai số kế tiếp nhau của mã không thể khác nhiều hơn một bit. Thuộc tính này của mã màu xám làm cho nó hữu ích hơn K-map, sửa lỗi, giao tiếp, v.v.
Điều này làm cho việc chuyển đổi mã nhị phân sang mã màu xám là cần thiết. Vì vậy, hãy xem một thuật toán để chuyển đổi mã nhị phân sang mã màu xám sử dụng đệ quy .
Ví dụ
Hãy lấy một ví dụ về mã màu xám
Input : 1001 Output : 1101
Thuật toán
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.
Ví dụ
#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; }
Đầu ra
The binary number is 100110001 The gray code conversion is 110101001