Computer >> Máy Tính >  >> Lập trình >> lập trình C

Mã nhị phân sang màu xám sử dụng đệ quy trong chương trình C

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