位运算总结

1. 计算机中的二进制

  计算机以二进制表示数据,以表示电路中的正反。在二进制下,一个位只有01逢二进一位。类似十进制下,一个位只有0~9。逢十进一位。

2. 二进制常用运算

  • 位运算:
    位运算是直接对二进制数进行操作的运算,包括与(&)、或(|)、异或(^)、取反(~)等。

(1) 与运算,[&:两位同时为1时,结果才为1,否则为0]:

  1 0 0 1 1
& 1 1 0 0 1
-------------
  1 0 0 0 1

(2)或运算,[ |:两位中只要有一位为1,结果就为1]:

  1 0 0 1 1
| 1 1 0 0 1
------------------------------
  1 1 0 1 1

(3)异或,[^: 两位相同为0,不同为1]:

  1 0 0 1 1
^ 1 1 0 0 1
-----------------------------
  0 1 0 1 0

(4)取反,[~:位为0则变1,为1则变0]:

~ 1 0 0 1 1
-----------------------------
  0 1 1 0 0
  • 相关实战代码:
int a = 5; //二进制表示为 101
int b = 3; //二进制表示为 011
int c = a & b; //与运算,结果为 001,即1
int d = a | b; //或运算,结果为 111,即7
int e = a ^ b; //异或运算,结果为 110,即6
int f = ~a; //取反运算,结果为 11111111111111111111111111111010,即 -6

(5)移位运算
  移位运算包括左移(<<)、右移(>>)以及无符号右移(>>> , 无符号右移就是右移之后,无论该数为正还是为负,右移之后左边都是补上0),它们分别将一个二进制数左移或右移一定的位数。

int a = 5; //二进制表示为 101
int b = a << 1; //左移一位,结果为 1010,即10
int c = a >> 1; //右移一位,结果为 10,即2
int d = a >>> 1; //无符号右移一位,结果为 10,即2

(6)位运算赋值运算符
  位运算赋值运算符(&=、|=、^=、<<=、>>=、>>>=)是将位运算结果赋值给左操作数的运算。

int a = 5; //二进制表示为 101
int b = 3; //二进制表示为 011
a &= b; //相当于 a = a & b 
a |= b; //相当于 a = a | b
a ^= b; //相当于 a = a ^ b
a <<= 1; //相当于 a = a << 1
a >>= 1; //相当于 a = a >> 1
a >>>= 1; //相当于 a = a >>> 1
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值