16 비트 부호있는 정수를 상징하는 두 개의 Java 바이트를 입력으로 가져옵니다. 나는 하나의 자바 정수로 변환 할 필요가있다. 나는 "못생긴"해결책을 생각해 냈는데, 그 해결책은 int로 변환 한 다음 짧고 int로 변환하는 것을 포함한다. 더 짧고 우아한 방법이 있습니까? 내 코드는 다음과 같습니다 :이 바이너리 - 자바 유형 코드를 단순화하는 방법은 무엇입니까?
는public int convert(byte b1, byte b2){
int i1 = (int) (((b2 << 8) + (b1 & 0xFF)) & 0x0000FFFF);
short s1 = (short) i1;
int i2 = (int) s1;
return i2;
}
'return (short) i1; '은 자동 확장을 사용하면 더 간단합니다. –
그러나 나는 (짧은 이유가 아니라) 마지막으로 int를 얻어야한다. – alebo611
'return (short) i1;'은 마지막 세 줄과 동일합니다. 손가락 걸고 약속. –