我很难把int
,short
,short
装进long
.
以下是我目前掌握的情况:
int p = 123456;
short x = -567;
short y = 789;
long l = (((long) p) << 32) | (x & 0xffff0000L) | (y & 0x0000ffffL);
int p2 = (int) (l >> 32);
short x2 = (short) (l >> 48);
short y2 = (short) l;
产
p=123456, p2=123456
x=-567, x2=1 // bad result
y=789, y2=789
中间值不正确.我怎么才能解决这个问题呢?