Python实现将格雷码转换为二进制码

在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码(Gray Code);

本文将使用Python实现将格雷码转换为二进制码;

实现如下:

def gray2binary(n):
    n = int(n, 2)
    mask = n
    while mask:
        mask >>= 1
        n ^= mask
    return bin(n)[2:].zfill(4)

gray = input('请输入格雷码: ')
print('二进制码:', gray2binary(gray))

输出:

请输入格雷码: 0111
二进制码: 0101

原创内容,如需转载,请注明出处;

本文地址: https://www.perfcode.com/p/gray-to-binary.html

分类: 计算机技术
推荐阅读:
使用Rust计算圆周率 要使用 Rust 计算圆周率,可以使用蒙特卡罗方法。该方法通过在单位正方形中生成随机点,并计算落在单位圆内的点的数量来估计圆周率。
Go语言的多返回值 Go语言革命性地在静态开发语言阵营中率先提供了多返回值功能。这个特性让开发者可以从原来用各种比较别扭的方式返回多个值的痛苦中解脱出来,既不用再区分参数列表中哪几个用于输入,哪几个用于输出,也不用再只为了返回多个值而专门定义一个数据结构。
MySQL ASCII()函数 ASCII(str)函数返回字符串str第一个字符的ASCII码;如果str是NULL则返回NULL;
从Nginx日志中提取UserAgent、IP等信息 有时我们需要用到大量UserAgent信息,而Nginx日志文件中包含了海量真实的UserAgent,从Nginx文件中提取所有UserAgent信息就很有必要;
Golang通过使用GetSystemMetrics获取系统的分辨率 本文将使用Go语言调用GetSystemMetrics()函数来获取系统的分辨率。
Linux显示使用内存最多的十个进程 在Linux系统下,你可以使用一条命令显示当前系统使用内存最多的十个进程: