java二进制正数和负数取反

“反码”,“取反”,“按位取反(~)”,这3个概念是不一样的。
取反:0变1,1变0
反码:正数的反码是其本身,对于负数其符号位不变其它各位取反(0变1,1变0)
按位取反(~): 这将是下面要讨论的。
要弄懂这个运算符的计算方法,首先必须明白二进制数在内存中的存放形式,二进制数在内存中是以补码的形式存放的。
另外正数和负数的补码不一样,正数的补码、反码都是其本身,负数的反码是符号位不变,其余位取反,补码是反码加1,即:
正数11:
原码:00001011
补码:00001011
反码:00001011
负数-12
原码:11111100
反码:11110011
补码:11110100
对正数11按位取反
原码: 00001011
补码: 00001011
反码: 00001011
对补码取反: 11110100
减1得反码: 11110011
反码取反:     11111100

对负数-12按位取反
原码: 11111100
反码: 11110011
补码: 11110100
对补码取反: 00001011


对正数取反的口诀:补码取反减1取反
对负数取反的口诀:原码取反加1取反
     规律:正数的取反等于正数加1取负        例如11的取反等于-12
        负数的取反等于负数加1取正      例如-12的取反等于11
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值