怎样把整数转换为16进制数??? ( 积分: 38 )

  • 主题发起人 主题发起人 幸福鸟
  • 开始时间 开始时间

幸福鸟

Unregistered / Unconfirmed
GUEST, unregistred user!
有1字符串,T0E20061212101111,其中0E为16进制,换算为整数就是14,就是代表后面日期的长度,但我在delphi中怎样把整数14转换为0x0E(1位的字符,不是“0E”2位字符串),即0E算1个长度,T0E20061212101111的全部长度为14+1+1=16长。
例如
Tx2030,其中x应该为16进制的0x04,就是把4转换为16进制
 
sendbuf:pchar;

sendbuf:=pchar('T'+'X'+formatdatetime('yyyymmddhhmmss', now));
sendbuf[1]:= ???
我怎么把X处变成16进制0x0E呢
 
IntToStr,StrToHex等函数。
 
能否写下吗
 
var
S, SS: string;
begin
SS := '20061212101111';
S := 'T' + IntToHex(Length(SS), 1) + SS;
ShowMessage(S)
// TE20061212101111
S := 'T' + IntToHex(Length(SS), 2) + SS;
ShowMessage(S)
// T0E20061212101111
 
inttohex(integer),就可以了
 
wzca 说的很对
 
inttohex(int,2)
 
找准关键字 可以省不少分
只要搜索十六进制转换 我保证结果1秒钟内就在你眼前
 
sendbuf:pchar;
iLen:integer;
strtmp:string;

begin
iLen:=14 ;
strtmp:=IntToHex(iLen,2);
sendbuf:=pchar('T' + strtmp + formatdatetime('yyyymmddhhmmss', now))

end;
 
IDTemp:='20061212101111';
ID:='T'+chr(Length(IDTemp))+IDTemp;
注意,第二个字符可能是非可视字符。
 
后退
顶部