问题标签 [gray-code]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1786 浏览

r - 在R中将格雷码转换为十进制

我有一组 0 和 1,表示为最初使用 创建的列表sample(c(0,1), n, replace=TRUE),其中 n 是我的二进制数的长度。我目前正在使用 BCD 转换器将我的二进制数转换为十进制数,在这里可以看到:

我想改用 GrayCode.To.Decimal 转换器,它与我的 BCD.to.Decimal 转换器执行相同的工作,但改用格雷码。

注意:速度对此很重要,我想以最有效的方式做到这一点。我知道我的 BCD 转换器可能不是最有效的,它只是最简单的,如果您有一种更有效的方式来处理 BCD 转换,我也有兴趣了解这一点。

什么是格雷码?:http ://en.wikipedia.org/wiki/Gray_code

0 投票
3 回答
4589 浏览

c++ - 格雷码加法

有没有任何已知的方法来计算两个格雷码的加法(可能还有减法),而不必将两个格雷码转换为常规二进制,执行二进制加法然后将结果转换回格雷码?我设法编写了递增和递减函数,但加法和减法似乎更少记录并且更难编写。

0 投票
3 回答
1204 浏览

c - 格雷码中的邻居

有什么算法可以用来在格雷码中找到邻居吗?

对于小数字来说,写整个表格就可以了,但是如果我有一个像010 110这样的数字,用 6 个数字来写整个格雷码表就有点过分了。

0 投票
1 回答
486 浏览

c++ - 反射格雷码到二进制转换中的幻数

我编写了一个通用函数来将二进制反射格雷码转换为标准二进制。我使用了在此页面上找到的算法。这是前面提到的算法:

然后我修改了代码,使其适用于任何标准unsigned类型。这是我写的:

该算法似乎适用于每种unsigned标准类型。但是,在编写它时,我本能地使用了它,sizeof(Uint)*4因为结束条件取决于字体大小是有道理的,但事实是我不知道sizeof(Uint)*4实际代表什么。就目前而言,这是我本能地写下的一个神奇数字,但我无法解释为什么它适用*4于任何其他系数而不适用于任何其他系数。

有人知道这个幻数实际上对应的是什么吗?

0 投票
1 回答
1747 浏览

algorithm - 非递归格雷码算法理解

这是算法书中的任务。

问题是我完全不知道从哪里开始!

所以我知道 1 位的格雷码应该是0 12位00 01 11 10等。

许多问题

1)我知道对于 n = 1 我可以从 开始0 1吗?

2)我应该如何理解“从全0的n位字符串开始”?

3)“前一个位串”?哪个字符串是“前一个”?以前的意思是来自较低的 n 位?(例如对于 n=2,前一个是来自 n=1 的那个)?

4) 如果唯一的操作是翻转,我如何将 1 位字符串转换为 2 位字符串?

这让我很困惑。到目前为止,我理解的唯一“人类”方法是:从较低的 n 位获取集合,复制它们,反转第二个集合,将 0 添加到第一个集合中的每个元素,添加 1 做第二个集合中的每个元素。完成(例如:0 1-> 0 1 | 0 1-> 0 1 | 1 0-> 00 01 | 11 10->11 01 11 10完成。

谢谢你的帮助

0 投票
2 回答
190 浏览

python - python中的灰度等级算法实现

如何在 python 中实现以下算法:

在此处输入图像描述来源

0 投票
1 回答
142 浏览

c - 有什么简单的方法可以为 C 中数组的每个元素添加前缀吗?

我正在解决格雷码问题。我使用递归调用制定了我的逻辑。一切看起来都不错,但我不知道如何为数组的每个元素添加前缀“0”或“1”。例如)前缀 0 : { 00, 01, 11, 10 } -> { 000, 001, 011, 010 } 或前缀 1 : { 00, 01, 11, 10 } -> { 100, 101, 111, 110 }

0 投票
0 回答
67 浏览

php - 如何在 PHP 中使用 64 位

我写了一个函数,它将输出一系列格雷码。对于 N 的输入,显示 N 位的最后 N 个格雷码数。

现在,如果输入超出,此函数不会给出正确的输出31。但我至少需要这个工作64。我怎样才能做到这一点?

这是功能:

31 的正确输出:http: //codepad.org/8LotGD35

33 的错误输出:http: //codepad.org/JmfIOrrj

1-31 的完整输出:http: //codepad.viper-7.com/aDPx68

0 投票
2 回答
1468 浏览

binary - 如何将负二进制数转换为其格雷码

我有一个负二进制数,它有一个符号位,想编写一个程序来获取它的格雷码。但是,我只能找到正数的解决方案。所以我在这里问这个问题。谢谢。

0 投票
9 回答
17253 浏览

java - 如何判断两个数字是否是格雷码序列中的连续数字

我试图想出一个解决方案,给定两个数字,找出它们是否是格雷码序列中的连续数字,即,如果它们是格雷码邻居,假设没有提到格雷码序列。

我在各种论坛上搜索,但无法得到正确的答案。如果您可以为此提供解决方案,那就太好了。

我对这个问题的尝试 - 将两个整数转换为二进制并分别将两个数字中的数字相加,并找出两个数字中数字之和之间的差异。如果差值为 1,则它们是格雷码邻居。

但我觉得这不适用于所有情况。非常感谢任何帮助。非常感谢提前!!!