我试图在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