通过反转字节将小转换为大端

时间:2013-03-29 21:51:22

标签: c

我试图通过反转字节来将我的小端转换为大端,但我获得与小端相同的输出。我修改了我的代码,但价值保持不变。如果有人能告诉我哪里出错了。谢谢你的帮助

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
        FILE* input;
        FILE* output;

        input = fopen(argv[1],"r");
        output = fopen(argv[2],"w");

        int zipcode, population, value;
        int popluationEndian;

        unsigned char *convert =  (unsigned char*) &population;
        unsigned char temp[4];

        int i;
        while(fscanf(input,"%d %d\n",&zipcode, &population)!= EOF)
        {
                for(i = 0; i<4; i++)
                {
                        temp[i] = convert[3-i];
                }
               popluationEndian = fwrite(&population,sizeof(int),1,output);
        }

        fclose(input);                
        fclose(output);
        return 0;
}

1 个答案:

答案 0 :(得分:1)

您在此处更改字节顺序

temp[i] = convert[3-i];

但从不再使用temp

您可能希望输出temp中的内容而不是population中的内容。