Khi cần chuyển đổi mã nhị phân sang mã Gray, ta có thể định nghĩa một hàm thực hiện phép toán XOR.
Ví dụ
def binary_to_gray(n):
n = int(n, 2) # Chuyển chuỗi nhị phân sang số nguyên
n ^= (n >> 1) # Phép XOR với dịch phải 1 bit
return bin(n)[2:] # Trả về chuỗi nhị phân bỏ tiền tố '0b'
gray_val = input('Nhập số nhị phân: ')
binary_val = binary_to_gray(gray_val)
print('Mã Gray là:', binary_val)
Kết quả
Nhập số nhị phân: 101100110 Mã Gray là: 111010101
Giải thích
- Hàm
binary_to_graynhận tham số là chuỗi nhị phân. - Chuyển chuỗi sang số nguyên cơ số 2.
- Thực hiện phép XOR giữa số và chính nó dịch phải 1 bit (
n ^ (n >> 1)). - Trả về kết quả dưới dạng chuỗi nhị phân (bỏ tiền tố
0b). - Nhập dữ liệu từ người dùng, gọi hàm và in kết quả.