我得到兩個java字節作爲輸入,共同表示一個16位有符號整數。我需要將它轉換爲一個單一的java整數(當然,簽名)。我想出了一個「醜陋的」解決方案,其中包括轉換爲int,然後轉換爲short,然後轉換爲int。有更短更優雅的方式嗎? 我的代碼如下:如何簡化這種二進制到java類型的代碼?
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;'與您最後3行相同。勾小指。 –