您的位置:程序门 -> delphi -> 语言基础/算法/系统设计



怎样把整数转换为16进制数???


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


怎样把整数转换为16进制数???[已结贴,结贴人:xingfuniao]
发表于:2007-02-07 17:07:06 楼主
有1字符串,t0e20061212101111,其中0e为16进制,换算为整数就是14,就是代表后面日期的长度,但我在delphi中怎样把整数14转换为0x0e(1位的字符,不是“0e”2位字符串),即0e算1个长度,t0e20061212101111的全部长度为14+1+1=16长。
发表于:2007-02-07 17:12:111楼 得分:0
例如
tx2030,其中x应该为16进制的0x04,就是把4转换为16进制
发表于:2007-02-07 17:15:532楼 得分:3
inttohex
发表于:2007-02-07 17:18:083楼 得分:0
sendbuf:pchar;

sendbuf:=pchar( 't '+ 'x '+formatdatetime( 'yyyymmddhhmmss ',   now));
sendbuf[1]:=   ???
  我怎么把x处变成16进制0x0e呢
发表于:2007-02-07 17:30:114楼 得分:8
var
    s:string;
begin
    s:= 't '+inttohex(14,2)+ '20061212101111 ';
    showmessage(   s   );
发表于:2007-02-07 17:32:105楼 得分:0
inttohex(14,2)是转换成了实际的0e     2位的字符串了,我想要的就是16进制的0x0e,showmessage(   s   );   中0e应该是显示不出来的
发表于:2007-02-07 17:49:566楼 得分:0
等高人吧。。。
发表于:2007-02-07 18:03:337楼 得分:0
搞出来了
        sendbuf   :=   pchar( 't '   +   '0 '   +   formatdatetime( 'yyyymmddhhmmss ',   now));
        sendbuf[2]   :=   chr(byte(length(formatdatetime( 'yyyymmddhhmmss ',   now))));
发表于:2007-02-07 18:20:478楼 得分:0
恭喜
发表于:2007-02-07 19:13:329楼 得分:0
-_-!!
发表于:2007-02-07 19:37:2010楼 得分:18
看来楼主欲得到这样的字串,是基于一种我们所不知道的特殊的需求....

楼主给我发的站内消息,二十分钟前刚刚看到.....

为了不辜负楼主的期望,就给楼主一种另类的实现方式吧:

var
    s   :   string[255];
    l   :   char   absolute   s;
    sendbuf   :   string;
begin
    s   :=   formatdatetime( 'yyyymmddhhmmss ',   now);
    sendbuf   :=   't '   +   l   +   s;
end;
发表于:2007-02-08 09:48:2311楼 得分:8
-_-....

format( 't%.2x%s ',[length(formatdatetime( 'yyyymmddhhnnss ',now)),formatdatetime( 'yyyymmddhhnnss ',now)]);
发表于:2007-02-08 11:23:0512楼 得分:0
辣椒你没看明白楼主的真正需求.....

楼主要的,不是   t   +   原字串s长度的十六进字串形式   +   s     ,而是:把原字串s从s[0]开始放到新字串的 't '后面.......
发表于:2007-02-08 11:28:0413楼 得分:1
inttohex就可以搞定了
发表于:2007-02-08 11:29:2814楼 得分:0
楼上还是没有看清楼主的真正需求....


快速检索

最新资讯
热门点击