写了一个小程序,用十六进制打印出一些数字,这样我就可以简单地将它们复制并粘贴到十六进制编辑器中,而不是逐个输入。我让它们正确打印出来,除了我需要它们是小端格式。任何建议或帮助将不胜感激。
#include <stdio.h>
#include <inttypes.h>
#include <stdint.h>
int main( int argc, const char* argv[] )
{
int ii;
for (ii = 3; ii<413; ii++)
{
printf("%.4x ", ii);
}
}
现在我的输出如下所示:
0043 0044 0045 0046 0047 0048 0049 004a 004b 004c
但我希望它看起来像
4300 4400 4500 4600 ...
答案 0 :(得分:2)
您可以通过一次打印每个字节来完成此操作,例如
#include <stdio.h>
int main(void) {
unsigned a;
for(a=0x43; a<=0x4c; a++) // as your question
printf("%04x ", a);
printf("\n");
for(a=0x43; a<=0x4c; a++)
printf("%02x%02x ", a & 255, (a / 256) & 255); // endian reversed
printf("\n");
return 0;
}
节目输出:
0043 0044 0045 0046 0047 0048 0049 004a 004b 004c
4300 4400 4500 4600 4700 4800 4900 4a00 4b00 4c00