不知道楼主是不是需要将BCD码转为Hex码procedure TForm1.Button1Click(Sender: TObject); function BcdToHex(i: byte): byte; var j: byte; begin j := 0; while i>=10 do begin inc(j); i := i - 10; end; Result := StrToInt('$'+IntToStr(j)+IntToStr(i)); end; begin ShowMessage(IntToStr(BcdToHex(31))); end;
inttohex(十进制数,4);
其它楼主自己想吧^_^
FloorID As Byte '楼层号 16进制数 02
roomid As Byte '房间号 16进制数 03
写明byte中要存放16进制啊
procedure TForm1.Button1Click(Sender: TObject);
var
b,c: byte;
s: string;
begin
b:= 15;
s:= inttohex(b,2);
showmessage(s);
c:= strtoint('$'+s);
showmessage(inttostr(c));
end;
var
b: byte;
begin
b:= $0f; //是不是这里理解的问题?
end;
而且为什么$后跟个变量编译就通不过呢?
function BcdToHex(i: byte): byte;
var
j: byte;
begin
j := 0;
while i>=10 do
begin
inc(j);
i := i - 10;
end;
Result := StrToInt('$'+IntToStr(j)+IntToStr(i));
end;
begin
ShowMessage(IntToStr(BcdToHex(31)));
end;
最大存取十六进制数也就是FF而已,你说的00000000是不是二进制啊?
如果你想把十六进制保存为FF这种形式,那就用string类型保存。
如果要用byte类型来保存,要在前面加上$,比如:$FF。
明白否?
呵呵