格雷码的C++实现
2015-10-27 22:51
411 查看
网上看到一道面试题,是格雷码转换的,以前在面硬件的时候碰到过这道题,当时是用硬件实现。现在想用软件编程实现,看了一下网上别人的代码,发现太复杂,其实用格雷码和二进制之间的转换公式实现最简单。
1.自然二进制码转换成二进制格雷码
G最高位 = B最高位
G第i位 = B第i位 异或 B第i+1位
2、二进制格雷码转换成自然二进制码
B最高位 = G最高位
B第i-1位 = G第i位 异或 B第i位
C++程序实现自然二进制码转二进制格雷码:
1.自然二进制码转换成二进制格雷码
G最高位 = B最高位
G第i位 = B第i位 异或 B第i+1位
2、二进制格雷码转换成自然二进制码
B最高位 = G最高位
B第i-1位 = G第i位 异或 B第i位
C++程序实现自然二进制码转二进制格雷码:
vector<int> grayCode(int n) { vector<int> gray; gray.push_back(0); for (int i=1; i<pow(2,n);i++) <span style="white-space:pre"> </span>gray.push_back(i^(i>>1)); return gray; }
相关文章推荐
- C++plus 2.6
- C语言:值传递
- 【c++面向对象编程】工资管理系统
- C++对象构造,析构,new,delete分析
- 谈谈:C++类的“包含”机制
- c++ int 转char * 函数 _itoa_s
- 爬爬爬之路:OC语言(二) 类
- C语言的指针
- C++生成dll和调用dll的方法实例
- C语言学习-通过柴田望洋的《明解C语言》(2)
- 谷歌C++编程规范补充--windows编程规范
- 谷歌C++编程规范补充--windows编程规范
- C++的道路
- C/C++ 之 _splitpath 获取文件路径
- C++学习笔录4
- 【ThinkingInC++】8、说明,浅谈数据类型的大小
- 求字符串长度的三种方法
- c++类和对象
- C/C++专项练习 (五)
- 用C++写Web应用是一种怎样的体验?