私は、Python 2.xの中で、私はちょうどバイナリリテラルデータをJavaでエンコードするコンパクトな方法はありますか?
b = '\x01\x02\x04\x08\x80\x40\x20\xff\xef\x40\x30\xfe\x3f\x90\x44\x78'
を使用することができるのに対し、Java構文が苦痛であると(byte)
は、最上位ビットが設定された値を処理するためにキャストする必要がありますJavaの
final byte[] b = new byte[]{0x01, 0x02, 0x04, 0x08,
(byte)0x80, 0x40, 0x20, (byte)0xff,
(byte)0xef, 0x40, 0x30, (byte)0xfe,
0x3f, (byte)0x90, 0x44, 0x78};
これを行うことができます。
もっと簡単な方法はありますか? ("01020408804020ffef4030fe3f904478"
のような文字列をbyte[]
に変換するヘルパークラスの作成以外)
「BigInteger」を使用すると、ヘルパークラスを自分で書く必要がなくなります。 – resueman
* "ヘルパークラスを書くのを除いて" ... *私はそうは思わない。 –
@malbarbo - その質問の複製ではなく、キャストの欠如による問題の修正方法を知りたいだけです。私は、Javaでバイト配列リテラルを作成するデフォルトの方法ではキャストが必要だと知っています。バイト配列をよりコンパクトに表現する方法があるかどうかを知りたいのです。 –