java加减的二进制实现

  Java中整数基本类型有byte,short,int,long,大小分别为1、2、4、8个字节,一个字节大小为8位,也就是8个二进制码(0/1)组成。

  计算机中二进制码分为原码,反码,补码。在计算机中正数以原码存储,负数以补码存储。

  原码是在机器中表示的形式,首位1代表负数,0代表正数。比如 以byte类型为例, 0000 0001代表正数1,1111 1111 表示-1。 正数的原码,反码,补码相同,负数的反码为原码除了符号位,其他位取反。补码为反码加1。比如-3原码为1000 0011,反码就为1111 1100,存在计算机中的数就是1111 1101。补码得原码跟原码得补码相同。

  注意:计算机中1000 0000 代表-128。

  在java中如果两个-128相加,不考虑进位的情况下,结果为 1 0000 0000,因为byte类型,所以1舍弃,最后结果为0。

  同理Integer.MAX_VALUE+Integer.MAX_VALUE结果为-2。

转载于:https://www.cnblogs.com/alijava/p/7207365.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值