java二进制负数相加,JAVA中位演算与负数求二进制总结

JAVA中位运算与负数求二进制总结

负数求解方法:

求-7二进制

1.先将-7绝对值转换成二进制,得00000111

2.然后求该二进制数的反码,得11111000

3.最后为第二步得到的二进制数+1,结果为11111001

求-8二进制

1.先将-8绝对值转换成二进制,得00001000

2.然后求该二进制数的反码,得11110111

3.最后为第二步得到的二进制数+1,结果为11111000

有没有发现规律啊:

1.当二进制数的反码的最后一位是0时,直接把0变成1,就是这个负数的最后二进制数

2.当二进制数的反码的最后一位是1时:比如上面的-8的二进制数的反码,得1111 0111

0111是8的绝对值的不完全二进制的二进制码,所以

0111+1  0110

0110+1  0100

0100+1  0000

0000+1  1000

直到8的绝对值的不完全二进制全不转换完为止;

最后的结果因该是11111111111111111111111111111000

例子:

System.out.println(Integer.toBinaryString(-8));

System.out.println(Integer.toBinaryString(-8>>2));

System.out.println(Integer.toBinaryString(-8<<2));

System.out.println(Integer.toBinaryString(-8>>>2));

结果:

11111111111111111111111111111000

11111111111111111111111111111110

11111111111111111111111111100000

111111111111111111111111111110

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值