2012-03-06 13 views
2

私はthisソリューションを見つけましたが、Java SEのようです。私はSystem.out.format()関数の代わりを見つけることができません。また、私はByteBuffer.allocate()の機能をByteBuffer.allocateDirect()に変更しました。これは正しいですか?Javaの整数からバイト配列へブラックベリーJ2ME

byte[] bytes = ByteBuffer.allocate(4).putInt(1695609641).array(); 

    for (byte b : bytes) { 
     System.out.format("0x%x ", b); 
    } 

ありがとうございます。

+0

何[エンディアン](http://en.wikipedia.org/wiki/Endianness ) 欲しいですか? –

答えて

2

あなたがJavaのシリアライズおよびリモートライブラリ全体で使用されるnetwork byte order別名ビッグエンディアン順序を使用する場合:

static byte[] intToBytesBigEndian(int i) { 
    return new byte[] { 
    (byte) ((i >>> 24) & 0xff), 
    (byte) ((i >>> 16) & 0xff), 
    (byte) ((i >>> 8) & 0xff), 
    (byte) (i & 0xff), 
    }; 
} 
0
// 32-bit integer = 4 bytes (8 bits each) 
int i = 1695609641; 
byte[] bytes = new byte[4]; 

// big-endian, store most significant byte in byte 0 
byte[3] = (byte)(i & 0xff); 
i >>= 8; 
byte[2] = (byte)(i & 0xff); 
i >>= 8; 
byte[1] = (byte)(i & 0xff); 
i >>= 8; 
byte[0] = (byte)(i & 0xff); 
+0

明示的なキャストで固定 – arc

関連する問題