首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

请问:关于16进制的转化

2012-04-06 
请教:关于16进制的转化我想把字符串转化为16进制,如“123abc.txt”;然后再将16进制还原为字符串,如何来做?In

请教:关于16进制的转化
我想把字符串转化为16进制,如“123abc.txt”;
然后再将16进制还原为字符串,如何来做?
IntToHex函数好像是将字符串转化为16进制,那怎么将16进制还原为字符串呢?


[解决办法]
AnsiString AnsiString_to_BCD(AnsiString wait_to_trans)
{
AnsiString DecodeStr;
try
{
for (int i = 1; i < wait_to_trans.Length() + 1; i += 2)
{
AnsiString TempStr = "0x " + wait_to_trans.SubString(i, 2);
DecodeStr += AnsiString((char) (TempStr.ToInt()));
}
}
catch (...)
{
return " ";
}
return DecodeStr;
}

eg:

a = AnsiString_to_BCD( "12345567 ");
result a = 0x12 0x34 0x55 0x67;

[解决办法]
不明白你的意思!
字符串转成16进制的 只能包含A-F 这个范围内的字符!


其实bcb 提供俩2格字符串转整型与整型转成字符串的函数!
c 标准库也提供了atol(具体的忘记了,可以选择转换类型的)
int n = 16;
// To Hex
String sHex = IntToHex(n,2); // 结果 : sHex = 10;

// To Int
int n1 = StrToInt( "0x0 " + sHex); // 结果 : n1 = 16 (十进制)

热点排行