格雷码与二进制之间的转换(二进制与格雷码之间的转换镜像)

2023-03-15 14:21:04 密码用途 思思

module bin_to_gray(bin,gray);

parameterSIZE = 4;

input[SIZE-1:0] bin;

output[SIZE-1:0] gray;

assign gray= {1’b0,bin[SIZE -1:1]} ^ bin;

endmodule

module gray_to_bin(bin,gray);

parameterSIZE = 4;

input[SIZE-1:0] gray;

output[SIZE-1:0] bin;

reg[SIZE-1:0] bin;

integer i;

always@(gray)

for(i=0;i=SIZE-1;i=i+1)

bin[i]=^(grayi);

//bin[i]=^{{i{1’b0}},gray[SIZE -1:i]}

endmodule

格雷码如何转换成二进制?

最左边一位依然不变依次异或,直到最低位。依次异或转换后的值就是格雷码转换 后的二进制值。

 在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码(Gray Code),另外由于最大数与最小数之间也仅一位数不同,即“首尾相连”,因此又称循环码或反射码。

典型的二进制格雷码(Binary Gray Code)简称格雷码,因1953年公开的弗兰克·格雷(Frank Gray,18870913-19690523)专利“Pulse Code Communication”而得名,当初是为了通信,现在则常用于模拟-数字转换和位置-数字转换中。

法国电讯工程师波特(Jean-Maurice-Émile Baudot,18450911-19030328)在1880年曾用过的波特码相当于它的一种变形。1941年George Stibitz设计的一种8元二进制机械计数器正好符合格雷码计数器的计数规律。

二进制(binary),发现者莱布尼茨,是在数学和数字电路中以2为基数的记数系统,是以2为基数代表系统的二进位制。这一系统中,通常用两个不同的符号0(代表零)和1(代表一)来表示。

数字电子电路中,逻辑门的实现直接应用了二进制,现代的计算机和依赖计算机的设备里都使用二进制。每个数字称为一个比特(Bit,Binary digit的缩写)。

格雷码转二进制公式

格雷码转二进制公式:二进位码第n位=二进位码第(n+1)位+格雷码第n位。因为二进位码和格雷码皆有相同位数,所以二进位码可从最高位的左边位元取0,以进行计算。