Here is my code:
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));
I need x1, x2, x3, x4 to be up to 16384(2^14). So with added +- sign, it's total 15 bits. Why am I getting incorrect values?