如何从十进制数获取格雷码
可能的重复:
.NET 中的格雷码
我想从数字的十进制等效值中获取数字的格雷码。
示例:
Dec Gray Binary
0 000 000
1 001 001
2 011 010
3 010 011
4 110 100
5 111 101
6 101 110
7 100 111
Possible Duplicate:
Gray code in .NET
I want to get Gray code of a number from its Decimal equivalent.
Example:
Dec Gray Binary
0 000 000
1 001 001
2 011 010
3 010 011
4 110 100
5 111 101
6 101 110
7 100 111
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
假设您只想对非负整数执行此操作:
您可能还想阅读 这篇博文提供了双向转换的方法,尽管作者选择将代码表示为包含任一方向的
int
数组或每个位置为零。就我个人而言,我认为 BitArray 可能是更好的选择。Assuming you only want to do this on non-negative integers:
You might also like to read this blog post which provides methods for conversions in both directions, though the author chose to represent the code as an array of
int
containing either one or zero at each position. Personally I would think aBitArray
might be a better choice.MSB 保持不变。对于其余位,右移一位并进行异或。如果你进行逻辑右移,那么你知道移入 MSB 的位是 0,那么你可以只进行移位和异或。
The MSB stays the same. For the rest of the bits, you right shift one bit and xor. If you do a logical right shift so you know the bit shifted into the MSB is a 0, then you can just shift and xor.