Java中无符号数的处理

在使用java编写虚拟机类型的程序时,经常会使用无符号数来作为地址或者操作数。java原生语言中并不支持无符号数,因此需要我们将有符号数转为无符号数。

核心思想使用位数更长的数字覆盖之前的无符号位,如果我们使用short计算,那么我们就要转换到int类型去计算,int的无符号类型就需要使用long以此类推。

但考虑到计算速度,int之下的类型都建议放到int类型去计算。使用&计算符号,将有符号的参数提升到无符号参数。

    public static byte uByteAdd(byte a, byte b) {
        int a1 = a & 0xff;
        int b1 = b & 0xff;
        return (byte) (a1 + b1);
    }

上面的方法便模拟了无符号数相加的情况,同样也模拟了溢出。

在编写8bit计算时十分有用。

获得结果可以使用&0xff,来获取无符号数的真实值。

对于short而言使用&0xffff,来获取无符号数的真实值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值