2011-09-10 26 views

回答

2

你最好讀4個字節爲從一開始就int。但是把兩個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簽署的事實。