ビッグエンディアンとリトルエンディアン
あーなんていうか、バイナリで書かれた設定ファイル的なものから必要な情報を抽出する的なコードをJavaで書いてたんだけど、JavaのVMがビッグエンディアンな一方で、バイナリで書かれた設定ファイル的なものが普通にリトルエンディアンなので、java.io.RandomAccessFile#readShort()とか使うと全然値が変わってきてしまうので、いちいち
byte buff[] = new byte[2]; file.read(buff,0,buff.length); int i = ((int)buff[0] & 0xFF ) | ((int)buff[1] & 0xFF ) << 8 ;
みたいに変換してあげなくちゃあいけないからすごい面倒くさい。