24

エンディアンが正しい言葉かどうかはわかりませんが..

PNG ファイルを解析していて、すべての整数値がビッグ エンディアンであることに気付きました。これは本当ですか?

たとえば、幅と高さは PNG ファイルに 32 ビットの符号なし整数として格納されます。私の画像は16x16で、ファイルには次のように保存されています:

00 00 00 10

それがいつあるべきか:

10 00 00 00

これは本当ですか、それとも私が見逃しているものがありますか?

4

2 に答える 2

25

はい、仕様によると、整数はネットワーク バイト オーダー (ビッグ エンディアン) である必要があります。

2 バイト以上の整数を必要とするすべての整数は、ネットワーク バイト順である必要があります。最上位バイトが最初に来て、次に下位バイトが重要度の降順になります (2 バイト整数の場合は MSB LSB、4 バイト整数の場合は MSB B2 B1 LSB)。 )。バイトの最上位ビット (値 128) の番号はビット 7 です。最下位ビット (値 1) の番号はビット 0 です。値は、特に明記されていない限り、符号なしです。符号付きとして明示的に示されている値は、2 の補数表記で表されます。

http://www.w3.org/TR/2003/REC-PNG-20031110/#7Integers-and-byte-order

于 2010-03-05T02:12:23.537 に答える
10

PNG の整数は、ネットワーク バイト順 (ビッグ エンディアン) です。

参照:仕様

于 2010-03-05T02:07:57.653 に答える