私はエンディアンに取り組んでいます。私のリトルエンディアンプログラムは機能し、正しい出力を提供します。しかし、私はビッグエンディアンを回避することができません。以下は私がこれまでに持っているものです。私はビットシフトを使用する必要があることを知っています、そして私はそれで良い仕事をしているとは思いません。TAと教授に聞いてみましたが、あまり役に立ちません。私はこのリンクをたどっています(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 value,value2;
int i;
int zipcode, population;
while(fscanf(input,"%d %d\n",&zipcode, &population)!= EOF)
{
for(i = 0; i<4; i++)
{
population = ((population >> 4)|(population << 4));
}
fwrite(&population, sizeof(int), 1, output);
}
fclose(input);
fclose(output);
return 0;
}