나는 두 개의 문자 = 4 바이트를 가지고 있는데, 이는 정수 값을 나타냅니다 (스트림에서 가져옴).Java에서 기본 유형의 메모리를 복사하는 방법은 무엇입니까?
어떻게 이것을 원시 int 변수에 복사 할 수 있습니까?
나는 두 개의 문자 = 4 바이트를 가지고 있는데, 이는 정수 값을 나타냅니다 (스트림에서 가져옴).Java에서 기본 유형의 메모리를 복사하는 방법은 무엇입니까?
어떻게 이것을 원시 int 변수에 복사 할 수 있습니까?
처음부터 int
으로 4 바이트를 읽는 것이 좋습니다. 그러나 당신은 당신이 주문은 거의 큰 엔디안인지 알 필요가
char ch1, ch2;
int i = (ch1 << 16) + ch2; // or ch2 << 16 + ch1
사용할 수있는 int로 두 문자를 켭니다.
downvote하지 않았지만'(ch1 << 16) + ch2;가되어야합니다. –
@Vineet, 좋은 지적입니다. '+'는'<<'보다 높은 우선 순위를가집니다. 이것은'|'보다 높기 때문에 매트의 답은 대괄호가 필요 없습니다. http://adload.oracle.com/javase/tutorial/java/nutsandbolts/operators.html –
일종의 수동 복사입니다. java는 C++과 같은 memcpy 함수를 가지고 있습니까? –
여기 그것을하는 하나 개의 가능한 방법 :
char a = 0x00FF;
char b = 0x0F0F;
int i = b << 16 | a;
하지만 : 당신 엔디안에 대해 걱정할 필요하고 있습니다 int
이 서명 한 사실에 대해.
현재 가지고있는 코드를 게시 할 수 있습니까? – skaz