请问有没有把string中的数字转成16进制的函数??
例:
string ls="01200360"
我想转成ls="0114033c"
有没有函数??
问题点数:0、回复次数:8Top
1 楼daphant(狒狒)回复于 2003-07-02 14:04:44 得分 0
int a = atoi(ls);
printf("%x",a);Top
2 楼xubobbs(波波酷)回复于 2003-07-02 14:06:13 得分 0
呵呵,这样试试看行不行
string ls="01200360";
dword changedls=atol((LPCTSTR)ls);
ls.Format("%x",changedls);
MessageBox(ls);Top
3 楼aliyan(琳琳)回复于 2003-07-02 14:15:36 得分 0
也就是有没有strtoint的函数??Top
4 楼wangweintk(枫杨)回复于 2003-07-02 14:16:02 得分 0
没有,只有先提取出来,转成长整型后。
CString ls = "01200360";
long iLS = atoi(ls);
至于十六进制,无所谓了,使用时加上"0x"即可(例如:0x3a0等)
Top
5 楼aliyan(琳琳)回复于 2003-07-02 14:18:10 得分 0
其实我是两位两位的计算的的:
string ls="01200360"
01 20 03 60
01 14 03 3c
我想自己写的函数来转可是不知道怎么写??Top
6 楼bigcrocodile(大鳄鱼)回复于 2003-07-02 14:40:05 得分 0
先转换为十进制,再转换为十六进制Top
7 楼zhucde(【風間苍月】★<==>★【虚拟闲人】)回复于 2003-07-02 14:54:20 得分 0
因为你所是两位两位处理的,
要先读取出来 ,然后再处理.Top
8 楼aliyan(琳琳)回复于 2003-07-02 15:20:26 得分 0
成功了
CString ls,ts,ls2;
ls.Format("0%s00%s0%s",Ti,Ta,Hi+Ha);
for (int i=0;i<12;i+=2)
{
ls2=ls.Mid(i,2);
if (atoi(ls2)>15)
ts.Format("%s%x",ts,atoi(ls2));
else
ts.Format("%s0%x",ts,atoi(ls2));
}
Top



