您的位置:

Python 程序:将格雷码转换为二进制

在这个简单的 python 程序中,我们需要将格雷码转换为二进制。这是一个基于数字的 python 程序。

为了更好地理解这个例子,我们总是建议您学习下面列出的 Python 编程的基本主题:

  • Python 运算符
  • Python 模块
  • Python 循环

什么是格雷码和二进制码?

这个 python 程序示例用于将格雷码转换为二进制。为了理解这个程序,我们需要知道什么是二进制和格雷码。

二进制码:二进制是一个以 2 为基数的数字码,意思是数字只用 0 和 1 表示。它用于机器语言。例如,1 的二进制代码是 001。

格雷码:格雷码也称为反射二进制码,它只是二进制数的一种排列,就像连续的值只相差 1 位。格雷码 1 的一个例子是 001。

python 中如何将格雷码转换成二进制?

在这个 python 程序中,我们需要将格雷码转换为二进制,这可以通过对数字和小于 1 的数字进行连续xor运算来实现。再次xor用那个数字小于 1。为了得到小于 1 的数字,我们使用右移位二进制数,并对数字和右移位数(数字- 1)进行xor运算。所以我们可以说格雷码可以用(g XOR(g>>1)XOR(g>>2)XOR…XOR(g>>m))转换成二进制。

算法

STEP 1: 使用 python 编程语言中的input功能,从用户端输入格雷码。

STEP 2: 调用自定义函数将格雷码转换为二进制码,将数字作为参数传递。

第三步:用 python 语言的print打印用户自定义函数返回的二进制数,

用户自定义函数 graytob(n)

步骤 1: 从主程序接受二进制数。

STEP 2: 使用 python 编程语言中的 int 将二进制数转换为整数。

步骤 3: 将数字存储到另一个变量中。

第四步:开一个while loop直到数字。

第五步:将数字右移一位得到数字 -1 ,用来和数字xor

步骤 6: 现在,用数字和右移的数字进行xor运算,直到整个 while 循环迭代。

STEP 7: 使用 python 中的 bin 以二进制表示形式返回数字。

Python 源代码

def graytob(n):

    n = int(n, 2) # convert to int

    mask = n
    while mask != 0:
        mask >>= 1
        n ^= mask

    return bin(n)[2:]

g = input('Enter Gray codeword: ')
b = graytob(g)
print('In binary:', b)

输出

Enter Gray codeword: 10
In binary: 11