gray码

作者: ericdejavu | 来源:发表于2017-07-22 23:22 被阅读0次

created by Dejavu
[完结]


  • 介绍
    Gray码是一种数字编码方式,可以使相邻的两个数之间只有一位的差别。
    gray码生成的原理是利用镜像的方式,复制低位的gary码来合成高位的gray码,想要得到二进制的3位全排列只需生成1位的全排列然后做镜像在镜像上方高位添0下方低位添1,即可得到2位的全排列,然后重复上述步骤来得到3位全排列,如下图所示


    gray码生成过程
  • 实现
    这里的 n代表的是二进制位数

    #include <iostream>
    #include <math.h>
    using namespace std;
    #define MAXN 100
    
    void gray(int n,int *code) {
      int t(0);
      for(int i=0;i<n;t+=code[i++]);
      if(t&1) for(n--;!code[n];n--);
      code[n-1] = 1-code[n-1];
    }
    
    int main() {
      int code[MAXN] = {0};
      int n = 4;
      for(int i=0;i<pow(2,n);i++) {
          for(int j=0;j<n;j++) cout << code[j] << ' ';
          cout << endl;
          gray(n,code);
      }
    }
    

相关文章

  • gray码

    created by Dejavu[完结] 介绍Gray码是一种数字编码方式,可以使相邻的两个数之间只有一位的差别...

  • Gray码

    引用Matrix67Gray码 假如我有4个潜在的GF,我需要决定最终到底和谁在一起。一个简单的办法就是,依...

  • 格雷码与二进制之间的转换

    1 二进制转换为格雷码 module bin_to_gray(bin,gray); parameterSIZE =...

  • Verilog——格雷码计数器

    - 格雷码(Gray code):​ 第一次接触格雷码是在本科的数电课本上,其在可靠性编码占据重要位置...

  • 生成组合对象之二进制反射格雷码(c++)

    binary reflected Gray code 二进制反射格雷码 伪代码描述 难点 在我看来这里的难点主要是...

  • gray-bin

    Gray[N-1:0]Bin[N-1:0] 已知Bin求Gray:assign Gray = (Bin >> 1)...

  • 89. Gray Code 格雷码

    题目 给定一个整数 n,返回 2 的 n 次幂的序列,使得这个序列满足格雷码。格雷码的特点是,将这些数字分解为二进...

  • 读《The gray rhino:How to Recogniz

    Gray Rhino-A gray Rhino is a highly probable, high-impact...

  • LeetCode89 Gray Code

    LeetCode89 Gray Code The gray code is a binary numeral sy...

  • GRAY

    糟透了的感觉 我真真是极其讨厌它了 心情倒也不赖 不知怎的 感觉却总是让人开心不起来 像极了重庆的天气 阴沉沉 下...

网友评论

      本文标题:gray码

      本文链接:https://www.haomeiwen.com/subject/sgcpkxtx.html