利用Java位运算符,完成Unsigned转换(无符号)
方案二:利用Java位运算符,完成Unsigned转换。
正常情况下,Java提供的数据类型是有符号signed类型的,可以通过位运算的方式得到它们相对应的无符号值,参见几个方法中的代码:
1 2 3 4 5 6 7 8 9 10 11 | public int getUnsignedByte ( byte data){ //将data字节型数据转换为0~255 (0xFF 即BYTE)。 return data& 0x0FF ; } public int getUnsignedByte ( short data){ //将data字节型数据转换为0~65535 (0xFFFF 即 WORD)。 return data& 0x0FFFF ; } public long getUnsignedIntt ( int data){ //将int数据转换为0~4294967295 (0xFFFFFFFF即DWORD)。 return data&0x0FFFFFFFFl; } |
其实,是使用更大的数据类型来存储无符号类型。
例如:byte的无符号类型的大小:0~255,JAVA的byte类型是有符号的类型,范围:-128~127。用更大的int类型就可以存储无符号的byte。
参考资料:
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步