java中如何将有符号数转化成无符号数

如题,将short类型,转成无符号码short类型,谢谢
[b]问题补充:[/b]
-1应该是转成65535,而不是1

由于Java的原始类型里没有无符号类型,如果你需要某个宽度的无符号类型,恐怕得用下一个宽度的带符号类型来模拟。例如你需要的是无符号的short,就得用int来模拟。要达到这样的模拟很简单:
[code="java"]int toUnsigned(short s) {
return s & 0x0FFFF;
}[/code]
但如果你坚持想要short的宽度(16位)的无符号类型,这个恐怕就……换种语言吧,嗯。

[code="java"]public class Test {

public static void main(String args[]) {
    short a = 3;
    if (a < 0) {
        a = (short) -a;
    }
    System.out.println(a);

}

}[/code]

short的取值范围为-32768~32767,占用2个字节(-2的15次方到2的15次方-1)