在Java中缓冲无符号整数

时间:2014-01-28 19:51:49

标签: java int buffer unsigned-integer

我试图在Java中添加一个无符号整数,我知道它们不受支持,但我觉得它们会对我们的情况有所帮助,并且比较长时间更容易。

我想创建一个getUInt()等的int。

我们当前的代码:

//--- functions ---
public int unsigned(int index){
    byte b = buf[index];
    if (b>=0) return b;
    return 256 + b;
}

public void setInt(int index,int val){
    buf[index+0] = (byte)(val&0xff);
    buf[index+1] = (byte)((val>>8)&0xff);
    buf[index+2] = (byte)((val>>16)&0xff);
    buf[index+3] = (byte)((val>>24)&0xff);
}
public void setShort(int index,int val){
    buf[index+0] = (byte)(val&0xff);
    buf[index+1] = (byte)((val>>8)&0xff);
}

public int getInt(int index){
    return (buf[index+3]<<24) | (unsigned(index+2)<<16) | (unsigned(index+1)<<8) | unsigned(index+0);
}   
public int getShort(int index){
    return (buf[index+1]<<8) | unsigned(index+0);
}
public int getUShort(int index){
    return (unsigned(index+1)<<8) | unsigned(index+0);
}

每次进入错误的缓冲区并获得零时,我将如何这样做。

感谢您的帮助, -Michael

0 个答案:

没有答案