详解C语言中的位操作运算符可以怎么用?
Posted Zhi Zhao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了详解C语言中的位操作运算符可以怎么用?相关的知识,希望对你有一定的参考价值。
目录
前言
最近在工作中碰到C语言中的位操作运算符,然后发现自己对这一块的内容比较模糊,所以打算写一篇博文记录这个知识点,今天是3月份的最后一天,恰巧的是自己今天生日,所以加个餐,弥补3月份没有写一篇博文的遗憾。位运算在嵌入式开发中较为常用,可以将它用于一些特殊的操作。下面进入正题,来聊一下C语言中常用的六大位运算符。
位运算符介绍
C语言提供了6个位运算操作符,这些运算符只能用于char、short、int、long类型。
以下单引号里面的符号即为所提的6个位操作运算符。
- ‘&’:按位与操作,按二进制位进行"与"运算;
- ‘|’:按位或操作,按二进制位进行"或"运算;
- ‘^’:按位异或操作,按二进制位进行"异或"运算;
- ‘~’:按位取反操作,按二进制位进行"取反"运算;
- ‘<<’:二进制左移运算符,将一个运算对象的各二进制位全部左移若干位,左边的二进制位丢弃,右边补0;
- ‘>>’:二进制右移运算符,将一个运算对象的各二进制位全部右移若干位,正数左补0,负数左补1,右边丢弃。
位运算符的应用
一般案例
假设如果 A = 60,且 B = 13,现在以二进制格式表示,它们如下所示:
A = 0011 1100
B = 0000 1101
对A和B按位操作运算符进行运算,则有:
A&B = 0000 1100
说明:A和B中对应位上的值进行与操作,类似于&&运算符,
0&0=0;
0&1=0;
1&0=0;
1&1=1;
A|B = 0011 1101
说明:A和B中对应位上的值进行或操作,类似于| | 运算符,
0|0=0;
0|1=1;
1|0=1;
1|1=1;
A^B = 0011 0001
说明:A和B中对应位上的值进行异或操作,相同为0,相异为1,0^0=0;
0^1=1;
1^0=1;
1^1=0;
~A = 1100 0011
说明:对A中每一位上的值进行取反操作,1取反为0,0取反为1。
A << 2 等于 1111 0000,即十进制的240。
A >> 2 等于 0000 1111,即十进制的15。
特殊用法
未完待续,明天更新,今晚先睡觉吧,身体是革命的本钱!
这是3月份欠下的博文,今天先保存发出去!
以上是关于详解C语言中的位操作运算符可以怎么用?的主要内容,如果未能解决你的问题,请参考以下文章
Java的位运算符详解实例——与(&)非(~)或(|)异或(^)