利用Java位运算符,完成Unsigned转换(无符号)

方案二:利用Java位运算符,完成Unsigned转换。

       正常情况下,Java提供的数据类型是有符号signed类型的,可以通过位运算的方式得到它们相对应的无符号值,参见几个方法中的代码:

      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。

参考资料:

 http://www.xuebuyuan.com/935241.html

转载于:https://www.cnblogs.com/H-BolinBlog/p/5593049.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值