2011-09-10 5 views

답변

2

처음부터 int으로 4 바이트를 읽는 것이 좋습니다. 그러나 당신은 당신이 주문은 거의 큰 엔디안인지 알 필요가

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

사용할 수있는 int로 두 문자를 켭니다.

+0

downvote하지 않았지만'(ch1 << 16) + ch2;가되어야합니다. –

+0

@Vineet, 좋은 지적입니다. '+'는'<<'보다 높은 우선 순위를가집니다. 이것은'|'보다 높기 때문에 매트의 답은 대괄호가 필요 없습니다. http://adload.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이 서명 한 사실에 대해.

관련 문제