位运算的简单应用

引入:显而易见,计算机里的信息都是按二进制存储的,然而它们是如何运算的呢,所以说就要学习位运算啦。

一.简单看看
0.先把全部拉出来看看:
运算符  含义
&    按位与
|    按位或
^    按位异或
~    取反
<<     左移
>>    右移
tips_1:~不是二目运算符
tips_2:位运算不能用实型数据
tips_3:位运算不是逻辑运算(逻辑运算符“&&”,“||”,“!”等)
tips_4:0与1分别表示false和true;
1.按位与
(1&1)=1;
(1&0)=0;
(0&0)=0;
由上面三个式子,可知,“&”只有在两个变量都取1时才为1,其他都为0;

01010100
00111011 &
——————
00010000

2.按位或
(1|1)=1;
(1|0)=1;
(0|0)=0;
由上面三个式子,可知,“|”只要一个变量取1时就为1,而两个都为0时才为0;

01010100
00111011 |
——————
01111111

3.按位异或
(1^1)=0;
(1^0)=1;
(0^1)=1;
(0^0)=0;
可以看出,如果某位不同则该位为1, 否则该位为0;
01010100
00111011 ^
——————
00010000

4.取反
额,这个。。。(好吧,就是把1变成0,0就变成1);
5.左移和右移
“<<”就是将一个二进制数向左移一位(后面加个0)
“>>”就是将一个二进制数向右移一位(后面去一位)
所以“<<”就是将一个数乘2(类比十进制,后面加个0就是乘10)
“>>”就是将一个数除以2;

6.优先级
C语言中位运算符之间,按优先级顺序排列为

  1. C语言中位运算符之间,按优先级顺序排列为
    1 ~
    2 << 、>>
    3 &
    4 ^
    5 |
    6 &= 、 ^= 、|= 、<<= 、>>=

tips:偶尔遇到<<<是指无符号右移。
二.稍微进阶(引用

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值