小弟遇到个问题,请救,分不多但是我倾家当产了。 ( 积分: 30 )

  • 主题发起人 主题发起人 imho
  • 开始时间 开始时间
I

imho

Unregistered / Unconfirmed
GUEST, unregistred user!
var
buffer:array [0..1] of byte
begin
buffer[0]:=$20;
buffer[1]:=$05;
//是BCD码,我怎么样转成十进制数,谢谢
//delphi里有个BCDtointeger()但是不知道用法,求救!
end;
 
var
buffer:array [0..1] of byte
begin
buffer[0]:=$20;
buffer[1]:=$05;
//是BCD码,我怎么样转成十进制数,谢谢
//delphi里有个BCDtointeger()但是不知道用法,求救!
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
buffer:array [0..1] of byte ;
i : Integer;
begin
buffer[0]:=$20;
buffer[1]:=$05;
i := buffer[0];
edit1.Text := IntToStr(i);
end;
 
这是转十进制,但是这样不行的,只是转十六进制成十进制,十六进制的BCD
 
procedure TForm1.Button1Click(Sender: TObject);
var
i : Integer;
Bcd1 : TBcd;
begin
Bcd1.Fraction[0] := $20;
Bcd1.Fraction[1] := $05;
i := BcdToInteger(Bcd1);
edit1.Text := IntToStr(i);
end;
 
运行的时候出现"BCD overflow"错误,我没用过这个,不知道什么原因非常感谢
 
呵呵,知道了,加一个,bcd1.precision:=4;就行了,谢谢呀
 
后退
顶部