内容
什么是灰色代码?
灰色代码-也被称为循环代码,反映了二进制代码(RBC),反映二元(RB)或灰色的代码- 被定义为二进制数字系统的排序,使得每个增量值只能不同。在灰色代码中,在代码组中仅遍历一步到另一步,只有一位更改。也就是说,两个相邻的代码仅不同于一位彼此不同。
格雷码是单位距离代码中最流行的,但它不适用于算术运算。格雷码在模拟转换器中具有一些应用,以及用于数字通信中的纠错。灰色代码最初可能难以理解,但在查看下面的灰色代码表时变得更加容易理解。
灰色代码表
表显示二进制代码与灰色代码和十进制到格雷码之间的转换的表如下:
二进制到灰码转换器
将二进制代码转换为等效变灰代码的逻辑电路已知为二进制到灰色码转换器。可以通过在2之后反映轴的N-1位代码来获得n比特格雷格码n - 1行,并把MSB(最有效位)为0高于轴,MSB为1低于轴。灰码的反射如下图所示。
4位二进制到灰码转换表如下:
这意味着,在4位格雷码中,(4-1)或3位代码反映在(24 - 1)th或8th排。
二进灰码转换电路如下图所示:
如何将二进制代码转换为灰色代码
- MSB(最高有效位)的格雷代码将与给定二进制数的第一位完全相同。
- 代码的第二位将是给定二进制数的第一和第二位的排他性 - 或(xor),即,如果两个比特都相同,结果将是0,如果它们不同,结果将是1。
- 第三位格雷码将等于给定二进制数的第二和第三位的独占 - 或(XOR)。因此,二进制到格雷码转换进行了。下面给出一个例子来说明这些步骤。
二进制到灰色代码转换示例
假设我们有一个二进制数01001,我们想把它转换成灰色编码。让我们通过一个例子来说明我们将如何执行这个转换:
- MSB保持不变。由于二进制的MSB为0,但是灰色码的MSB也是0(第一灰度位)
- 接下来,取第一个和第二个二进制位的异或。第一位是0,第二位是1。由于位不同,因此最终的灰度位将是1(第二个灰度位)
- 接下来,拍摄第二和第三二进制位的XOR。第二位为1,第三位为0.这些位再次不同,因此所得到的灰度位为1(第三灰度位)
- 接下来,拍摄第三和第四二进制比特的XOR。第三位为0,第四位为0.因为它们相同,所得到的灰度位为0(第四灰度位)
- 最后,取第四个和第五个二进制位的异或。第4位是0,第5位是1。这些位是不同的,所以最终的灰度位是1(第5个灰度位)
- 因此,二进制到灰码转换为01001的结果是完整的,并且等效的变形码是01101。
灰色到二进制代码转换器
在一个灰色到二进制代码转换器,输入为灰码,输出为等效二进制码。
让我们考虑4位灰色到二进制代码转换器。要将4位灰色设计为二进制代码转换器,我们首先必须绘制一个灰码转换表,如下所示:
到二进制转换器电路的灰度代码如下所示:
到二进制转换的灰色代码
灰码到二进位转换又是一个非常简单和容易的过程。下面的步骤可以让您清楚地了解这种类型的转换。
- 二进制数的MSB将等于给定灰色代码的MSB。
- 现在,如果第二灰度位为0,则第二二进制位将与前一个或第一位相同。如果灰度位为1,则第二二进制位将改变。如果是1,它将是0,如果是0,那将是1。
- 所有要做的工作都继续执行这一步灰码到二进位转换。
下面给出的一个例子会让你的想法更清楚。
二进制转换示例的格雷代码
二进制的MSB将为0,因为灰色的MSB为0。现在移到下一个灰色点。因为它是1,所以前一个二进制位将会改变,即它将是1,因此第二个二进制位将是1。接下来看看灰色代码的第三位。它仍然是1,因此前一个位,即第二个二进制位将再次改变,第三个二进制位将为0。现在,给定的灰度的第4位是0,所以前一个二进制位将保持不变,即第4位二进制位将是0。现在,第5个灰色位是1,因此之前的二进制位会改变,它从0变成1。因此,在灰码情况下,对二进制进行转换的等效二进制数为(01001)。
灰色代码示例序列
- 格雷代码只能将一位从其上一步更改为下一步。位的变化始终从右侧到左侧的左侧发生,即从LSB(最低有效位)朝向MSB(最有效位)。
- 我们知道对于二进制数字有两种可能的组合- 0和1。按照我们的规则,我们首先瞄准LSB(右侧)。因此,前3位保持不变(即000),第4位从0变为1。这是1的小数等号。
- 现在从LSB i.e.e.s移动到下一位。第3位。我们现在将该位从0变为1,这是2(0011)的十进制等效物。请注意,与二进制不同,我们不能从0001到0010转到,因为这同时改变第3位(0到1)和第4位(1到0)。
- 现在要从0011开始递增,我们从LSB(右边)开始,注意到我们到目前为止还没有看到组合0010。因此,我们保持前三位不变,并将最后一位从1改为0。因此,小数3的灰色代码是0010
- 遍历下一个代码。我们不能更改第3个或第4位,因为我们之前看到这些组合。因此,我们将其移至第二位并从0到1的变化。这在格雷码中给出了十进制数4。您可能会质疑为什么我们不能再次更改第三位,这也将是前一个的单位变化。但是随着第三位改变,给出前面发生的等效变灰0000(十进制数0),我们不能这样做。请记住,先前无法重复发生的数字。
- 重复先前的步骤,我们将保持第一和第二位常量,并通过仅在每个步骤中仅在每个步骤中更改1位,找到第三和第四位的可能组合。从第4位开始,因为这是LSB。
4位灰码的位记为G4G3.G2G1。现在来自转换表,
让我们从上面的sop(产品总和)中得出卡诺酱地图(K-maps) G4, G3., G2,和G.1。
格雷码的应用
灰色代码用于一些特定的应用。其主要应用包括用于模拟数字转换器,以及用于数字通信中的纠错。在模拟信号到数字信号的转换过程中,采用灰色码将误差最小化。
弗兰克·格雷(Gray code的名字)为脉冲编码调制(PCM)管申请了专利。这个PCM管是由贝尔实验室的雷蒙德·w·西尔斯(与弗兰克·格雷和威廉·m·古道尔合作)制造的,他们认为格雷是反射二进制码(即灰色码)的发明者。你可以读出来电视脉冲编码调制。
灰码的其他一些应用:
- 布尔电路最小化
- 时钟域之间的通信
- 误差修正
- 遗传算法
- 数学谜题
- 位置编码器
灰色码的优点
- 更好地在将模拟信号转换为数字信号时更好地最小化
- 在使用时减少了“汉明墙”(不期望的状态)的发生遗传算法
- 可用于最小化逻辑电路
- 用于时钟域交叉
灰色代码的缺点
- 不适用于算术运算
- 在几种特定应用外面的实际使用有限