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

怎样将char型的十进制数据转换成十六进制的数据?该怎么解决

2012-06-14 
怎样将char型的十进制数据转换成十六进制的数据?怎样将char型的十进制数据转换成十六进制的数据?部分程序

怎样将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 );
}

热点排行