随笔C语言——按位运算符有什么用

&(与)

&(按位与):两个位都为1时,结果才为1,否则为0。

使用场景

清零。如果想将一个数的某些位清零,只要与一个对应位为0的数进行按位与运算,结果就是清零后的数。例如,如果想将一个数的最低4位清零,可以用该数与1111 0000进行按位与运算。

取指定位。如果想取一个数的某些位,只要与一个对应位为1的数进行按位与运算,结果就是取出的指定位。例如,如果想取一个数的最低4位,可以用该数与0000 1111进行按位与运算。

判断奇偶。如果想判断一个数是否为奇数,只要将该数与0000 0001进行按位与运算,如果结果为1,则说明该数是奇数,否则为偶数。

|(或)

|(按位或):两个位都为0时,结果才为0,否则为1。

使用场景

置1。如果想将一个数的某些位置1,只要与一个对应位为1的数进行按位或运算,结果就是置1后的数。例如,如果想将一个数的最低4位置1,可以用该数与0000 1111进行按位或运算。

合并。如果想将两个数的不同部分合并成一个数,只要将两个数进行按位或运算,结果就是合并后的数。例如,如果想将一个数的高8位和另一个数的低8位合并成一个16位的数,可以用该数与1111 1111 0000 0000进行按位或运算,然后与另一个数进行按位或运算。

掩码。如果想对一个数的某些位进行掩码操作,只要与一个对应位为0的数进行按位或运算,结果就是掩码后的数。例如,如果想对一个数的最高4位进行掩码操作,可以用该数与0000 1111 1111 1111进行按位或运算。

~

~(按位取反):0变1,1变0。

^(异或)

^(按位异或):两个位相同为0,相异为1。

使用场景

判断两个数是否相等。如果参与运算的两个二进制位相同,则结果为0,否则为1。也就是说,异或主要用来判断两个值是否相同。例如,如果想判断a和b是否相等,可以用(a ^ b) == 0来判断。

加密。利用异或运算加密是很常见的加密手段,它涉及到三个变量:明文、密钥、密文。明文和密钥进行异或运算,可以得到密文。密文和密钥进行异或运算,可以得到明文。例如,如果明文为p,密钥为k,密文为c

<<(左移)

<<(左移):各二进位全部左移若干位,高位丢弃,低位补0。

>>(右移)

>>(右移):各二进位全部右移若干位,对无符号数,高位补0,有符号数,各编译器处理方法不一样,有的补符号位(算术右移),有的补0(逻辑右移)。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值