请教:关于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 (十进制)