您的位置:首页 > 编程语言 > C语言/C++

格雷码的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++程序实现自然二进制码转二进制格雷码:

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: