请问Java中如何处理无符号型数据?
  Home FAQ Contact Sign in
cn.comp.lang.java only
 
Advanced search
POPULAR GROUPS

more...

cn.comp.lang.java Profile…
 Up
请问Java中如何处理无符号型数据?         


Author: Davy 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位呢?
1 Comment
Re: 请问Java中如何处理无符号型数据?         


Author: Davy Hawk
Date: Sep 10, 2007 03:12

哦。。。知道了,无符号右移: n >>>= i;
Show full article (0.74Kb)
no comments