关于原码、反码和补码与二进制左移的问题

2018.4.18

在今天的算法学习过程中,关于求一个数的二进制中1的个数(负数用补码表示),需要注意一个原数是真值,码是二进制的值,不存在正负号,正数的反码补码与原码一致,负数的反码是在原码的基础上除符号位全部取反,补码是在反码的基础上再最后一位加1,例如:-10   原码是 10001010   反码是  11110101  补码是 11110110


2018.4.19

同样是昨天的算法,关注点是逻辑与(&&)和按位与(&)的区别:  https://www.cnblogs.com/zwffff/archive/2011/03/31/2000715.html 

主要是两点:其一是进行按位与的时候会把数全部转换为二进制然后进行按位操作,对于逻辑与会全部把数转换为boolean值然后进行操作;其二是逻辑与(&&)按照顺序逐个判断操作数,如出现不为真的情况则后面的不在进行判断,按位与则会对所有操作数进行判断,不会因一个操作数的真假与否从而停止判断。

左移一位乘2,左移两位乘4   flag<<1    



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值