原码、反码、补码及位运算

原码、反码、补码:

原码:

	  数据的二进制

反码:

      正数的原码就是它的反码
      负数的反码是它的原码符号位不变,其它位按位求反

补码:

	   数据在内存中是以补码形式存储的
       正数的原码就是它的补码
       负数的补码是它的反码+1
       负数的补码:
        1、数据转换为二进制
        2、二进制符号位不变,其余按位求反得到反码
        3、反码+1得到补码
    -127
    1111 1111
    1000 0000	符号位不变,其他取反
    1000 0001  	+1成补码

补码转数据:

    无符号的补码直接转成十进制数据
    有符号看最高位是0,说明是正数,也直接转成十进制数据
    有符号且最高位是1,说明是负数
        1、补码-1得到反码
        2、反码符号位不变,按位求反得到原码
        3、原码转换成十进制

11111111    补码
11111110    反码
10000001    原码    -1

最大值+1 = 最小值
最小值-1 = 最大值

位运算符:& | ~ ^ << >>

A & B   按位相与
01101010   0x6A    
01110110   0x76
01100010   0x62
A | B   按位相或
01101010   0x6A    
01110110   0x76
01111110   0x7E
~A      按位求反
01101010   0x6A
10010101   0x95
A^B     按位异或    相同为0,相异为1
01101010   0x6A    
01110110   0x76 
00011100   0x1C
A<<n    把A的补码向左移动n位,左边丢弃,右边补0
01101010   0x6A << 4
10100000   0xA0
A>>n    把A的补码向右移动n位,右边丢弃,左边补符号位
11101010   0xEA >> 3
11111101   0xFD
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值