這裏是我的代碼:爲什麼移位負數不起作用?
long x1 = -123;
long y1 = -312;
long x2 = -111;
long y2 = -112;
long packed = x1 | y1 << 15 | x2 << 30 | y2 << 45;
Debug.log("x1:" + ((packed) & 0b111111111111111));
Debug.log("y1:" + ((packed >> 15) & 0b111111111111111));
Debug.log("x2:" + ((packed >> 30) & 0b111111111111111));
Debug.log("y2:" + ((packed >> 45) & 0b111111111111111));
我需要X1,X2,X3,X4將上升到16384(2^14)。所以加上+ - 符號,總共15位。爲什麼我得到不正確的值?
@AndrewMorton爲什麼不呢?他們有15個,因爲這個數字可以達到14位(+號+1) –
Doh!也許我需要戴眼鏡。 –