2011-09-10 13 views

答えて

2

最初からintとして4バイトを読んでいるほうがよいです。しかし、2つのcharをintに変換することができます

char ch1, ch2; 
int i = (ch1 << 16) + ch2; // or ch2 << 16 + ch1 

注文が小さいか大きいエンディアンかどうかを知る必要があります。

+0

downvoteはしませんでしたが、 '(ch1 << 16)+ ch2; –

+0

@Vineet、良い点です。 '+'は '<<'よりも優先度が高く、これは '|'よりも高いので、Matの答えに角括弧は必要ありません。 http://download.oracle.com/javase/tutorial/java/nutsandbolts/operators.html –

+0

手動コピーのようなものです。 javaはC++のようなmemcpy関数を持っていますか? –

2

は、ここでそれを行うための一つの可能​​な方法です:

char a = 0x00FF; 
char b = 0x0F0F; 
int i = b << 16 | a; 

しかし:あなたはエンディアンを心配する必要があり、かつintが署名されているという事実についてのでしょう。

関連する問題