数値を含む hex_values という unsigned int 配列があります。例: 配列のサイズは 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);
}
問題は、number の最初の文字がゼロの場合、printf はそのゼロを表示しないことです...それを修正する方法はありますか?
THXの助けを借りて...
編集 :
OK、別の問題があります...たとえば、5つの値を含むサイズ5の配列があります.830C 830C 830C 830C 830Cとしましょう... 2つの関数があります(最初の投稿で言及されている最初のもの)。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 つの数字を持つ配列の名前であり、numbers は配列に含まれる値の数を表す数字にすぎません ... 問題は、配列に 1 よりも多くの値が含まれている場合、show_big 関数はそれらの数字をビッグ エンディアンで表示しないことです正しく(0C83 0C83 ...)...理由がまったくわかりません...必要な場合は、ここに完全なコードを貼り付けることができます... THX 助けてください。