当前位置: 首页 > news >正文

格雷码.

格雷码 - OI Wiki

格雷码_百度百科

简介

格雷码(Gray Code),又称为二进制格雷码或循环二进制码,是一种二进制编码方式。它得名于贝尔实验室的工程师弗兰克·格雷(Frank Gray),他于1940年代提出了这种编码方式,并在1953年获得了相关专利“Pulse Code Communication”。格雷码在数字系统、通信、模拟-数字转换和位置-数字转换等领域有广泛应用。

码表

十进制数

4位自然二进制码

4位典型格雷码

十进制余三格雷码

十进制空六格雷码

十进制跳六格雷码

步进码

0

0000

0000

0010

0000

0000

00000

1

0001

0001

0110

0001

0001

00001

2

0010

0011

0111

0011

0011

00011

3

0011

0010

0101

0010

0010

00111

4

0100

0110

0100

0110

0110

01111

5

0101

0111

1100

1110

0111

11111

6

0110

0101

1101

1010

0101

11110

7

0111

0100

1111

1011

0100

11100

8

1000

1100

1110

1001

1100

11000

9

1001

1101

1010

1000

1000

10000

10

1010

1111

----

----

----

----

11

1011

1110

----

----

----

----

12

1100

1010

----

----

----

----

13

1101

1011

----

----

----

----

14

1110

1001

----

----

----

----

15

1111

1000

----

----

----

----

构造方式

格雷码有很多构造方式,在这里介绍一下“镜像构造”这种方式。

格雷码的镜像构造方式是一种通过递归生成格雷码的方法。其核心思想是利用前一个格雷码序列的镜像对称性来生成下一个格雷码序列。具体步骤如下:

1. 基础情况
  • 当 n=1 时,格雷码序列为:

            G1=[0,1]
2. 递归步骤
  • 假设已经生成了 n−1 位的格雷码序列 Gn−1,则 n 位的格雷码序列 Gn​ 可以通过以下方式生成:

    1. 复制:将 Gn−1​ 复制一份,作为 Gn​ 的前半部分。

    2. 镜像:将 Gn−1​ 反转,作为 Gn 的后半部分。

    3. 前缀添加:在前半部分的每个码字前添加 0,在后半部分的每个码字前添加 1

3. 示例
  • 1位格雷码

    G1=[0,1]G1​=[0,1]
  • 2位格雷码

    G2=[00,01,11,10]G2​=[00,01,11,10]
  • 3位格雷码

    G3=[000,001,011,010,110,111,101,100]G3​=[000,001,011,010,110,111,101,100]
4. 总结

 镜像构造方式通过递归和镜像对称性,能够高效地生成任意位数的格雷码序列。这种方法不仅简单直观,而且保证了相邻码字之间只有一位不同,符合格雷码的特性。 

相关文章:

  • YOLOV8添加ASPP改进
  • Pyhon第五章01:函数的定义和练习
  • Qt 控件概述 QWdiget 1.1
  • 运维面试题(四)
  • C++|范围for
  • OpenCV基础知识
  • 分类操作-06.根据id删除分类
  • JS基础部分
  • 奇安信二面
  • 北京大学第六弹:《DeepSeek应用场景中需要关注的十个安全问题和防范措施》
  • 【论文阅读】Adversarial Patch Attacks on Monocular Depth Estimation Networks
  • 硬件地址反序?用位操作为LED灯序“纠偏”。反转二进制数即可解决
  • TCP/IP协议中三次握手(Three-way Handshake)与四次挥手(Four-way Wave)
  • 2025年跨网文件交换系统推荐:安全的内外网文件传输系统Top10
  • 01-1 音视频知识学习(音频)
  • 【Java代码审计 | 第十四篇】MVC模型、项目结构、依赖管理及配置文件概念详解
  • 九、Prometheus 监控windows(外部)主机
  • How To Change Windows VPS Password
  • 【k8s001】K8s架构浅析
  • 网页制作16-Javascipt时间特效の设置D-DAY倒计时
  • 人民日报:上海“模速空间”何以汇聚超百家大模型企业
  • 燕子矶:物流网络中的闪亮节点|劳动者的书信②
  • 铁路12306回应“五一前大量放票”传闻:个别方向和区段出现新增票额,均即时进入系统重新发售
  • 三大上市猪企:前瞻应对饲料原材料价格波动
  • 向左繁华都市,向右和美乡村,嘉兴如何打造城乡融合发展样本
  • 首部关于民营经济发展的基础性法律,有何亮点?专家解读