C和C++中:
short兩個字節長度,其中符號位佔了一位。所以實際數值位數是15位。取值範圍爲:-32768~+32768。
unsigned short沒有符號位,所以實質數值位數是16位。取值範圍:0~65536。
Java中的基本類型都是有符號類型,也就是數值類型都有正負號。所佔位數,不隨硬件變化。其基本數據類型大小如下:
char 2個字節,16位;
byte 1個字節, 8位;
short 2個字節,16位;
int 4個字節,32位;
long 8個字節,64位;
float 4個字節,32位;
double 8個字節,64位;
以上基本類型都有一位符號位。
互轉操作:
Java讀取有符號類型:
int readUnsignedShort () //從流中讀取一個0~65535(0xFFFF)的雙字節數據,並以int數據類型的數據返回。返回的數據相當於C/C++語言中所謂的“WORD”, 並且是以“低地址低字節”的方式返回的,所以程序員不需要額外的轉換。
Java有符號類型轉無符號類型:
public int getUnsignedShort(short data){ //將data字節型數據轉換爲0~65535 (0xFFFF 即 WORD)。
return data&0x0FFFF ;
}
轉載:
https://blog.csdn.net/Ashelyhss/article/details/46691393