clear;clc;close all
judge=input("格雷码转二进制按1,二进制转格雷码按2:");
if(judge~=1&&judge~=2)
error("请正确选择");
end
if(judge==1)
a=input("格雷码:","s");
n=length(a);
gray=zeros(1,n);
for i=1:n
gray(1,i)=str2num(a(i));
if(gray(1,i)>1||gray(1,i)<0)
error("非二进制数");
end
end
biary=zeros(1,n);
biary(1)=gray(1);
for i=2:n
if(gray(i)==biary(i-1))
biary(i)=0;
else
biary(i)=1;
end
end
biary
end
if(judge==2)
a=input("二进制数:","s");
n=length(a);
binary=zeros(1,n);
for i=1:n
binary(1,i)=str2num(a(i));
if(binary(1,i)>1||binary(1,i)<0)
error("非格雷码");
end
end
gray=zeros(1,n);
gray(1)=binary(1);
for i=2:n
if(binary(i)==binary(i-1))
gray(i)=0;
else
gray(i)=1;
end
end
gray
end
matlab格雷码与二进制数相互转换
最新推荐文章于 2024-04-25 08:57:11 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)