zoukankan      html  css  js  c++  java
  • 格雷码与二进制码转化成格雷码

    在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码(Gray Code),格雷码由0和1组成,由二进制码演化而成。

    格雷码生成方法如下:

    1. 1位格雷码有两个码字
    2. (n+1)位格雷码中的前2n个码字等于n位格雷码的码字,按顺序书写,加前缀0
    3. (n+1)位格雷码中的后2n个码字等于n位格雷码的码字,按逆序书写,加前缀1

    举例如下:

    1位格雷码:

    0

    1

    2位格雷码:

    总共有2^2个码字,前一半的码字为1位的格雷码按顺序书写加前缀0,后一半的码字为1位格雷码逆序书写加前缀1,结果如下:

    00

    01

    11

    10

    3位格雷码为:

    在2位格雷码的基础上结果如下:

    000

    001

    011

    010

    110

    111

    101

    100

    同理可以得出n位的格雷码。

    二进制转化成格雷码:

    原则是保留二进制码的最高位作为格雷码的最高位,格雷码的次高位为二进制编码的最高位和次高位相异或,格雷码的其他位和次高位的求法类似。

    Binary Code :1011 要转换成Gray Code

      1011 = 1(照写第一位), 1(第一位与第二位异或 1^0 = 1), 1(第二位异或第三位, 0^1=1), 0 (1^1 =0) = 1110

      其实就等于 (1011 >> 1) ^ 1011 = 1110

  • 相关阅读:
    Python-流程控制之if判断
    Python-流程控制之循环
    Python-基本运算符
    Python-基本运算符
    Python-数据类型的基本使用
    python2中与用户交互
    Python-内存管理
    vue 替换表格中的数据
    实现单例的三个方法
    django----框架介绍
  • 原文地址:https://www.cnblogs.com/cocos2014/p/4627693.html
Copyright © 2011-2022 走看看