clear
Gray = '0000'
len = length(Gray)
Bin(1) = Gray(1)
for i = 1 : len-1
tmp1 = bin2dec(Bin(i))
tmp2 = bin2dec(Gray(i+1))
Bin(i+1) = dec2bin(xor(tmp1, tmp2))
end
Gray
Bin
********************************************
转换之前的格雷码自己替换,现在是0000
运行程序会答应出结果:
Gray =
0000
Bin =
0000
就是说格雷码是0000,对应的二进制码是0000
#include<stdio.h>void main()
{int a[8],b[8]
int i=0,j=1
printf("Please input a 8-bit binary files! \n")
for(i<8i++)
scanf("%d",&a[i])
printf("\n Please Put this file into Gray code:\n ")
//以下是转换
b[0]=a[0]
for(j<8j++)
{if((a[j-1]+a[j])==0||a[j-1]+a[j]==2)
b[j]=0
else if((a[j-1]+a[j])==1)
b[j]=1
}
//输出格雷码
for(j=0j<8j++)
printf("%d ",b[j])
system("pause")
}
//其实知道算法就好写了,希望能给你一点帮助。
B(二进制)->G(格雷码)码只需将B码后移一位前面加零,
然后将此B码与原B码相异或,
得出的结果就为该B码的Gray码
例如: B3B2B1B0 转化为G码,
就为 B3B2B1B0 (+)【异或】 0B3B2B1 B码
1100110后移一位,最前面加0变为 0110011
然后
1100110
(+) 0110011
-------------------------
0011001
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)