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

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    



猜你喜欢

转载自blog.csdn.net/wang_future/article/details/79999997