我正在做c類型(u8,s16,u32,..) - 對於java轉換(只是一個包含布爾型符號和長整型值的類)。當然還有位數的長度。在Java中使用按位和運算符0xFF的原因
因此,例如:u8 signed = false length = 8;
然而在轉換的類型爲int []
有是這樣的:
int[] ret = new int[length/8];
for (int i = 0; i < ret.length; i++) {
ret[ret.length - 1 - i] = (char) (0xff & (value >> ((ret.length - i - 1) * 8)));
}
例如值= 7;長度= 8
什麼可以0xff &()完成?因爲
0xFF的僅僅是1111 1111 7 0000 0111 =>導致0000 0111
抑或是別的東西在這裏發生的?
'0xff'表示帶符號的'int'值! – NINCOMPOOP
7不是0000 1000或者它的0000 0111 – Jim
thx吉姆;我會改變它 – Thomas