7

iPhone で 3D オブジェクトをモデル化するために、Java で .obj パーサーを作成しました。データをできるだけ小さいバイナリ ファイルとしてエクスポートしたいと考えています。unsigned short に適合するインデックスはたくさんありますが、Java では int として表されます。

ファイルにデータを書き込む直前に、ByteBuffer クラスを使用して変換を行いたいと考えています。バイトを ByteBuffer にプッシュする前にバイトを操作する必要があると思いますが、その方法がわかりません。

お手数ですが、よろしくお願いいたします。

4

4 に答える 4

11

Java では、unsigned short は として表すことができますchar。int を char にキャストしputChar()て、ByteBuffer で使用するだけです。

myBuffer.putChar((char) my16BitInt);
于 2011-07-06T16:10:49.223 に答える
4
short toUint16(int i)
{
    return (short) i;
}

int toUint32(short s)
{
    return s & 0xFFFF;
}
于 2011-07-06T16:16:39.300 に答える
2

あなたの整数から単一バイトを抽出することができます

int i;
byte b1 = i & 0xFF;
byte b2 = (i >> 8) & 0xFF;
于 2011-07-06T16:11:31.107 に答える
0

http://download.oracle.com/javase/6/docs/api/java/io/DataOutputStream.htmlを使用 します

dos.writeShort(value & 0xFFFF);
于 2011-07-06T16:13:06.113 に答える