procedure TForm1.Button1Click(Sender: TObject);
var
i,ret : integer;
const
buf :array [0..8] of byte= (12,34,56,78,90,12,34,56,78);
begin
ret :=0;
for i:=0 to 8 do
ret := ret*100+(buf[i] and $f0)* 10 +(buf[i] and $0f);
caption := inttostr(ret);
end;我在跟踪的时候发现i的初始值是从9开始的,可程序是定i的初始值为0呀。你知道为什么??赶紧告诉我,我调了一天才发现的可疑之处。
var
i,ret : integer;
const
buf :array [0..8] of byte= (12,34,56,78,90,12,34,56,78);
begin
ret :=0;
for i:=0 to 8 do
ret := ret*100+(buf[i] and $f0)* 10 +(buf[i] and $0f);
caption := inttostr(ret);
end;我在跟踪的时候发现i的初始值是从9开始的,可程序是定i的初始值为0呀。你知道为什么??赶紧告诉我,我调了一天才发现的可疑之处。
ret :=0;I:=0;
var
i,ret : integer;
const
buf :array [0..8] of byte= (12,34,56,78,90,12,34,56,78);
begin
ret :=0;
for i:=0 to 8 do
begin
ret := ret*100+(buf[i] and $f0)* 10 +(buf[i] and $0f);
Memo1.Lines.Add(IntToStr(ret)+','+IntToStr(i));
end;
end;
我是这样测试的,没有发现问题啊。
for i:=0 to 8 do
begin
listbox1.items.Add(inttostr(i)) ;
listbox1.items.Add(inttostr(buf[i])) ;
// ret := ret*100+(buf[i] and $f0)* 10 +(buf[i] and $0f);
end;
caption := inttostr(ret);
对的,没有你的情况发生呀