读书人

怎样将char型的十进制数据转换成十六进

发布时间: 2012-06-14 16:00:31 作者: rapoo

怎样将char型的十进制数据转换成十六进制的数据?
怎样将char型的十进制数据转换成十六进制的数据?
部分程序如下:
CString str;
char data[300][20];
str.Format("%x",data[j]); //转换成十六进制
m_list.SetItemText(i, k, str);

数组data是读文件读取的数据,data里面的数据如下:10,98,102,104。
但是输出的在控件上显示的却是:124d754,124d758,124d77c,124d790
我觉得我的程序应该没问题呀,请教高手,为什么输出的不是对应的十六进制的数?

[解决办法]
你这是指针数组,data[j]是指针地址,不是数据。

str.Format("%x",data[i][j]);
[解决办法]
先把data数组转换为整数,再用str.Format
[解决办法]
我写的代码:
CString str = "";
CString strAll = "";
char data[300][20];
for (int i = 0; i < 300; i++)
{
for (int j = 0; j < 20; j++ )
{
str.Format("%02x ",data[i][j]); //转换成十六进制
strAll += str;
}
}
m_edit = strAll;

[解决办法]
试试 str.Format(_T("%02X"), (UINT)data[i][j]);
[解决办法]
先atoi嘛
str.Format("%x",atoi(data[j]));
[解决办法]
printf( "%x", atoi( char ) );
[解决办法]

探讨
以上几种方法我都试了,还是不行,输出的结果完全不对呀。。

[解决办法]
应该是要atoi 先转的
[解决办法]
long ltemp;
for(i=0; i<300; i++)
{
ltemp = strtol(data[i],NULL,10);
str.Format("%x",ltemp );
}

读书人网 >VC/MFC

热点推荐