我有一个名为 hex_values 的无符号整数数组,其中包含数字。例如:数组的大小是 5,它包含这个数字:
830C 830C 830C 830C 830C
我需要做的是将它们显示为大端值:
0C83 0C83 0C83 0C83 0C83
为了掩饰830C
我0C83
使用了这个功能:
unsigned int little_big(unsigned int little)
{
return((little&0xff)<<24)+((little&0xff00)<<8)+((little&0xff0000)>>8)+ \
((little>>24)&0xff);
}
问题是,如果数字的第一个字符是零,那么 printf 将不会显示零……有什么办法可以解决吗?
感谢您的帮助...
编辑 :
好的,我现在有另一个问题...例如,我有一个大小为 5 的数组,其中包含 5 个值,比如说 830C 830C 830C 830C 830C ...我有 2 个函数(第一个函数在我的第一篇文章中提到)。第二个函数有这个定义
void show_big(unsigned int * pt, unsigned int numbers)
{
<br>unsigned int hex_b, hex_l;
printf("\n");
for (unsigned int i = 0; i < numbers; i++)
{
hex_l = *(pt + i);
hex_b = little_big(hex_l);
printf("%04X", (hex_b >> BITS));
}
}
我用这个参数调用这个函数 show_big(hex_values, numbers); // hex_values 是包含 5 个数字的数组的名称,数字只是一个数字,表示数组有多少个值...问题是,如果数组包含的值多于 1,那么 show_big 函数将不会以大端显示这些数字正确(0C83 0C83 ...)...我真的不知道为什么...如果有必要我可以在这里完整的代码... THX寻求帮助。