Khi cần chuyển đổi mã Gray sang mã nhị phân, ta định nghĩa một hàm kiểm tra từng bit và áp dụng quy tắc chuyển đổi.
Ví dụ
def flip_bit(bit):
return '1' if bit == '0' else '0'
def gray_to_binary(gray):
binary = ""
binary += gray[0] # Bit đầu tiên giữ nguyên
for i in range(1, len(gray)):
if gray[i] == '0':
binary += binary[i - 1] # Giữ bit trước
else:
binary += flip_bit(binary[i - 1]) # Đảo bit trước
return binary
gray_code = "01101001"
print("Mã Gray:", gray_code)
print("Mã nhị phân của", gray_code, "là", gray_to_binary(gray_code))
Kết quả
Mã Gray: 01101001 Mã nhị phân của 01101001 là 01001110
Giải thích
- Hàm
flip_bitđảo giá trị bit: '0' thành '1' và ngược lại. - Hàm
gray_to_binarynhận chuỗi mã Gray. - Bit đầu tiên của nhị phân bằng bit đầu tiên của Gray.
- Với mỗi bit tiếp theo: nếu bit Gray là '0' thì bit nhị phân bằng bit nhị phân trước; nếu '1' thì đảo bit nhị phân trước.
- Trả về chuỗi nhị phân hoàn chỉnh.