学渣笔记——位运算符

现在也说不上来当初是我没听课还是老师没讲,后来再看发现对位运算符真的一点印象都没有,书上略讲了,可我就是强迫症必须大概弄清楚这是什么,以下对个位运算符的描述算是我查完以后的举例总结

一些前话
  1. 除了“按位与”和“按位或”运算,其他位运算符只能处理整数
  2. 位运算符是完全对位方面的操作
  3. 整型数据在内存中以二进制形式表示,左边最高位是符号位,最高位是0表示正数,最高位是1表示负数。
    负数用补码表示,如下(int型):
    11111111 11111111 11111111 11111000 表示的是-8
    00000000 00000000 00000000 00001000 表示的是8
&:“按位与”运算

写出二进制数,都为1则仍是1,其他情况为0
(以八位为例)如:
1:00000001
2:00000010
3:00000011
则 1 & 2 = 00000000 = 0;1 & 3 = 00000001 = 1

|:“按位或”运算

同理,写出二进制数,都为0则仍是0,其他情况为1
不再举例说明

~:“按位取反”运算

若0,结果写作1;若1,结果写作0

^:“按位异或”运算

若运算数相同(都为0或都为1),则结果写作0;不相同,结果写作1
举例:
4:00000100
7:00000111
4 ^ 7 = 00000011 = 3

<<:“左移位”运算符

写出二进制数,向左移位,低位补0
举例:计算2 << 2
1)2:00000010
2)左移两位:000010__
3)低位补0:00001000
得出:2 << 2 = 00001000 = 8
也可通过公式计算,如:a << b = a * 2 b
则:2 << 2 = 2 * 22 = 8

>>:“右移位”运算符

同理,不过是向右移位,也可当做舍弃右侧位。>>计算带符号,如果是正数,则高位补0,;负数则高位补1。
公式为:a / 2b

>>>:“右移位”运算符(不带符号)

和>>运算规则相似,计算不带符号,不论正负,高位都补0。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值