与运算、或运算、异或运算、取反、左移右移运算符

与运算(&):

       两位同时为1,则为1,否则为0。

       eg: 0 & 0 = 0, 0 & 1 = 0, 1 & 0 = 0, 1 & 1 = 1

       用途:a.清零  如果想让一个单元全部为二进制0,只要让其和一个各位都为0的数值相与即可。

                  b.取一个数的指定位  使一个只有指定位为1的数与原数相与即可。

                  eg. X = 10110110,取低四位:X & 00001111 = 00000110

或运算(|):

       参与运算的两个数只要有一个为1,则结果为1,否则为0。

       eg: 0 | 0 = 0, 0 | 1 = 1, 1 | 0 = 1, 1 | 1 = 1

       用途:将数据指定位置为1  使一个只有指定位为1的数与原数相或即可。

       eg. X = 10100000,将低四位置为1:X | 00001111 = 10101111

异或运算(^):

       参与运算的两个数不同,则结果为1,否则为0。

       eg: 0 ^ 0 = 0, 0 ^ 1 = 1, 1 ^ 0 = 1, 1 ^ 1 = 0
       用途:a.使指定位翻转  使一个只有指定位为1的数与原数相异或即可。

       eg:X = 10100110,使低四位翻转: X ^ 00001111 = 10101001

       b.与0相异或,保留原值。

取反(~):

       对一个二进制数按位取反,即1变0,0变1。

       使一个数最低位为0,可以表示为a & ~1。~1只有最低位为0。

左移运算符(<<):

       将二进制数左移若干位(左边的二进制位丢弃,右边补0)。若左移时舍弃的高位无1,则每左移一位,相当于该数乘以2。

右移运算符(>>):

       将二进制数右移若干位(右边的二进制位丢弃,正数左补0,负数左补1),操作数每右移一位,相当于该数除以2。

 

       不同长度的数据进行位运算时,系统会将二者按右端对齐进行位运算。左边不足的位按以下情况不租:

       (1)如果整型数据为正数,左边补0

       (2)如果整形数据为负数,左边补1

       (3)如果整形数据为无符号数,左边补0

 

参考:https://blog.youkuaiyun.com/xiaopihaierletian/article/details/78162863

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值