Author: Davy HawkDavy Hawk Date: Sep 8, 2007 17:52
Java中没有无符号型但由于某种情况需要处理无符号型数据该怎么做?
比如:
32位无符号型整数 0xabcdef67 放在 int 型里,进行 >> 4位,将变成 0xfabcdef6。
也就是说 Java 里面对大于0x80000000的无符号型整数进行>>操作时只能自己进行
处理:
int n = 0xabcdef67, i = 4;
boolean flag = false;
if (n<0) {
flag = true;
n &= 0x7fffffff;
}
n >>= i;
if (flag) {
n |= ((int)1<<(31-i));
}
不知道出了这种方式,是否还有其他办法处理无符号型整数?
我知道对于上面情况还可以把int扩展到long再处理,但如果是64位呢?
|