私は2つの文字= 4バイトを持っています、それは整数値を表します(ストリームから得られます)。プリミティブ型メモリをJavaでコピーする方法は?
これらをプリミティブ型の変数にコピーするにはどうすればよいですか?
私は2つの文字= 4バイトを持っています、それは整数値を表します(ストリームから得られます)。プリミティブ型メモリをJavaでコピーする方法は?
これらをプリミティブ型の変数にコピーするにはどうすればよいですか?
最初からint
として4バイトを読んでいるほうがよいです。しかし、2つのcharをintに変換することができます
char ch1, ch2;
int i = (ch1 << 16) + ch2; // or ch2 << 16 + ch1
注文が小さいか大きいエンディアンかどうかを知る必要があります。
downvoteはしませんでしたが、 '(ch1 << 16)+ ch2; –
@Vineet、良い点です。 '+'は '<<'よりも優先度が高く、これは '|'よりも高いので、Matの答えに角括弧は必要ありません。 http://download.oracle.com/javase/tutorial/java/nutsandbolts/operators.html –
手動コピーのようなものです。 javaはC++のようなmemcpy関数を持っていますか? –
は、ここでそれを行うための一つの可能な方法です:
char a = 0x00FF;
char b = 0x0F0F;
int i = b << 16 | a;
しかし:あなたはエンディアンを心配する必要があり、かつint
が署名されているという事実についてのでしょう。
あなたは現在持っているコードを投稿できますか? – skaz