当前位置: 技术问答>linux和unix
(100)想做一个程序,将收到的信息以16进的方式打的屏幕上。总也不成功?
来源: 互联网 发布时间:2015-09-17
本文导语: /* 函数说明:将接收到的字节数据以16进制的方式打印到屏幕 参数说明: 创建日期:2005-3-24 13:57 */ void DebugX (const char *pSource,int iLen) { int i;int n = 0;char c; for(i = 0; i > 4; if(c >= 0 && c = 0 && c 40) { n ...
/*
函数说明:将接收到的字节数据以16进制的方式打印到屏幕
参数说明:
创建日期:2005-3-24 13:57
*/
void DebugX (const char *pSource,int iLen)
{
int i;int n = 0;char c;
for(i = 0; i > 4;
if(c >= 0 && c = 0 && c 40)
{
n = 0;
printf("n");
}
}
printf("n");
}
??????
函数说明:将接收到的字节数据以16进制的方式打印到屏幕
参数说明:
创建日期:2005-3-24 13:57
*/
void DebugX (const char *pSource,int iLen)
{
int i;int n = 0;char c;
for(i = 0; i > 4;
if(c >= 0 && c = 0 && c 40)
{
n = 0;
printf("n");
}
}
printf("n");
}
??????
|
何苦呢?看得都累啊……
不在乎效率的话,直接用printf("%2.2X",*pSource++)就可以了,记住做个循环
效率高点的话那就一次性多输出几个字符,这样就会好点……
不过就算是上面那个效率低的我也觉得不会比你的代码效率低多少……
不在乎效率的话,直接用printf("%2.2X",*pSource++)就可以了,记住做个循环
效率高点的话那就一次性多输出几个字符,这样就会好点……
不过就算是上面那个效率低的我也觉得不会比你的代码效率低多少……
|
就是嘛,如果你没什么特殊应用
就用printf的%x就好啦。
就用printf的%x就好啦。
|
printf("%X",*((int*)pSource)++)
|
转换到int*是一种不好的行为,因为不是所有的平台都是Big Endian的,这样的行为将导致Little Endian平台上,4字节输出的时候产生字节倒序的问题……