逻辑运算与位运算

2018-4-14

总是将逻辑运算与位运算混淆,于是乎,在这里进行总结一下!

1.逻辑运算
逻辑运算又称布尔运算,它的结果应该是一个真假值,也就是true还是false。
1)&&:与运算,同为真时才为真。

2>1&&3>0 -> true
0>4&&9>2 -> false

2)||:或运算,同为假时才为假,也就是说有一个为真即为真。

2>3||3>2 -> true
2>3||3>4 -> false

3)!:非运算,! true=false,! false=true。

2>3 -> true
!3>2 -> false

4)^:异或运算,按照每一位进行异或,相同为0,不同为1。

5^3:
5 -> 00...00101(一共32位)
3 -> 00...00011(一共32位)
结果为00...00110即为6

2.位运算
1)&:按位与
2)|:按位或
3)^:按位异或
4)~ :按位取反
5)<<:左移
6)>>:算数右移

百度了一下,发现位运算的作用真的特别多~

1.简单应用
1)&:多用来取位操作:
比如说判断数的奇偶性就是取最后一位,与1&,若结果为1,则为奇数,反之为偶数。
2)|:多用来赋值:
把某个数变成最接近的偶数:|1-1即可。
3)^:密码加密
两次异或同一个数之后结果不变,这个也可以用来在不会有溢出的风险下交换两个数的值。

2.进阶应用
1)计算一个32位整数的二进制中1的个数的奇偶性。

直接取得每一个二进制位的值如果是1的话就加1,时间复杂度为该数二进制表示的位数。
x = x^(x >> 1);
x = x^(x >> 2);
x = x^(x >> 4);
x = x^(x >> 8);
x = x^(x >> 16);
return x & 1;

其实还有很多,但是由于时间问题我就不一一赘述了…

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值