xidianxiancai
2008-07-22, 09:24
关于运行的结果!
恳请大家帮我看看下面这个奇怪的现象:
t = 0:0.001:0.255;
x = sin(2*pi*50*t);
y=32768*x/10000;
z=fix(y);
%为看到结果,特别的设置了这么几个数
z(129)=z(129)+129;
z(65)=z(65)+65;
z(193)=z(193)+193;
z(33)=z(33)+33;
z(161)=z(161)+161;
for k=1:1:127
s=0;
m=k;
n=0;
q=0;
a=zeros(1,8);
b=zeros(1,8);
for i=1:1:8
j=mod(m,2);
if(j==1)
a(i)=j;
end
m=fix(m/2);
end
b=fliplr(a);
for i=1:1:8
j=i-1;
s=s+(2.^j)*b(i);
end
k=k+1;
s=s+1;
n=z(k);q=z(s);z(s)=n;z(k)=q;
end
用Run运行后的结果是0,130,1,192,3,161......
但是如果我用step单步运行的话结果是0,130,68,192,32,161.......(正确的结果,我想要的结果)。请问这是什么原因导致前后的结果不一样?
恳请大家帮我看看下面这个奇怪的现象:
t = 0:0.001:0.255;
x = sin(2*pi*50*t);
y=32768*x/10000;
z=fix(y);
%为看到结果,特别的设置了这么几个数
z(129)=z(129)+129;
z(65)=z(65)+65;
z(193)=z(193)+193;
z(33)=z(33)+33;
z(161)=z(161)+161;
for k=1:1:127
s=0;
m=k;
n=0;
q=0;
a=zeros(1,8);
b=zeros(1,8);
for i=1:1:8
j=mod(m,2);
if(j==1)
a(i)=j;
end
m=fix(m/2);
end
b=fliplr(a);
for i=1:1:8
j=i-1;
s=s+(2.^j)*b(i);
end
k=k+1;
s=s+1;
n=z(k);q=z(s);z(s)=n;z(k)=q;
end
用Run运行后的结果是0,130,1,192,3,161......
但是如果我用step单步运行的话结果是0,130,68,192,32,161.......(正确的结果,我想要的结果)。请问这是什么原因导致前后的结果不一样?