int型数値をバイナリファイルで保存したときに、"1" = 01 00 00 00となる理由は...?
Posted: 2011年12月29日(木) 00:52
vbc++です。int型整数を配列に入れてfwriteでバイナリファイルとして保存しました。
以下はテストプログラムです。
そのファイル(a.raw)をバイナリエディタで見てみると、下のようになったのですが、
00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
04 00 00 00 05 00 00 00 06 00 00 00 07 00 00 00
08 00 00 00 09 00 00 00 0A 00 00 00 0B 00 00 00
0C 00 00 00 0D 00 00 00 0E 00 00 00 0F 00 00 00
4バイト区切りで見たとき、in[1] = 1 のときに 01 00 00 00 と書かれてあるのですが、これは 00 00 00 01 でないのはなぜでしょうか? 他も同じです。
以下はテストプログラムです。
int main(){
FILE *fp;
unsigned int in[16];
fp=fopen("a.raw", "wb");
for(int i=0; i<16;i++){
in[i]=i;
printf("%d", in[i]);
}
fwrite(in, sizeof(int), 16, fp);
fclose(fp);
return 0;
}00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
04 00 00 00 05 00 00 00 06 00 00 00 07 00 00 00
08 00 00 00 09 00 00 00 0A 00 00 00 0B 00 00 00
0C 00 00 00 0D 00 00 00 0E 00 00 00 0F 00 00 00
4バイト区切りで見たとき、in[1] = 1 のときに 01 00 00 00 と書かれてあるのですが、これは 00 00 00 01 でないのはなぜでしょうか? 他も同じです。