栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言的位运算(详解)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言的位运算(详解)

位运算共有四种'&'、'|'、'~'和'^'

都以A=60,B=30为例

&:按位与操作,按二进制位进行与运算。

A:0011 1100
B:0001 1110
&:0001 1100 //即A&B:28

运算规则:0&0=0; 0&1=0; 1&0=0; 1&1=1(一个为假,则为假)

|:按位或运算。

A:0011 1100
B:0001 1110
|:0011 1110//即A|B:62

运算规则:0|0=0; 0|1=1; 1|0=1; 1|1=1(都为假时为假)

~:取反运算符。

A: 0011 1100
~:1100 0011//即~A:-61

这里负数涉及涉及原码、补码反码的转换。

运算规则:~1=0; ~0=1

^:异或运算符。

A:0011 1100
B:0001 1110
^:0010 0010//即A^B:34

运算规则:0^0=0; 0^1=1; 1^0=1; 1^1=0(一真一假时为真)

位运算符的应用:
  • 判断偶数
if(x&1)
printf("是奇数");
else
printf("是偶数");

 

  • 不使用中间变量交换两个整型的变量
int a=3,b=5;//a=0000 0011  b=0000 0101
a=a^b;//a=0000 0110
b=a^b;//b=0000 0011
a=a^b;//a=0000 0101

注:

<<:左移运算符,左移n位等价与乘以2的n次方(注意溢出)

>>:右移运算符,右移等价于除于1的n次方(右移左边补符号位,正数补0,负数补1)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1001514.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号