亀岡的プログラマ日記

京都のベッドタウン、亀岡よりだらだらとお送りいたします。

C#でのバイナリ⇔数値変換

あたりまえっちゃあ当たり前なんだけど、バイナリデータ変換でちょっと詰まった。

Byte[] x = { 0, 0, 0, 0x4 };
Console.WriteLine(BitConverter.ToInt32(x,0)); // 67108864

Byte[] y = { 0x4, 0, 0, 0 };
Console.WriteLine(BitConverter.ToInt32(x,0)); // 4
Byte[] z = { Convert.ToByte('a'), Convert.ToByte('b'),
	     Convert.ToByte('c'), Convert.ToByte('d') };

Encoding enc = Encoding.GetEncoding(0);
Console.WriteLine(enc.GetString(z)); //abcd

BitConverterで変換するやつは配列の後ろが先頭バイトになるから、AACとかの場合は逆順にしとかないとダメ。
でもエンコーディングはなぜか配列の後ろが最終バイトっぽく見てくれてる。

なんか気持ち悪い.