博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言位运算
阅读量:5057 次
发布时间:2019-06-12

本文共 647 字,大约阅读时间需要 2 分钟。

参考资料:

 

(1)     &     按位与   如果两个相应的二进制位都为1,则该位为1,否则为0

应用:二进制取位。

例如:a & 1 可以用来判断a的奇偶,结果为1则是奇数,为0则是偶数。

 

(2)    |      按位或   两个相应的二进制位中只要有一个为1,则该位为1,否则为0

应用:对二进制位上的特定位进行无条件赋值。

例如:a | b 就是把二进制最末位强制改为1,如果需要改为零,则 a | b - 1 即可。其实际意义是把这个数强行变为最接近的偶数。

 

(3)   ^     按位异或   两个相应的二进制位值相同为0,不同为1

应用:1,对二进制位的特定一位进行取反操作,因为异或可以这样定义:0和1异或0都不变,异或1则取反。

         2,异或运算的逆运算是它本身,即:(a^b)^b = a;  可以用于简单加密。

         3,用于交换两个变量的值。a=a^b; b=b^a; a=a^b;

 

(4)   ~   按位取反   指定位1变0,0变1

应用:求整数的二进制反码。

        如果~a,a为无符号整数,则得到的值是它与该类型上界的差。

 

(5)   <<   左移    用来将一个数的各二进制位左移N位,右边补零,高位溢出舍去

应用:a << b   等效于  a乘以2的b次方

 

(6)   >>   右移    将一个数各二进制位右移N位,低位舍弃,无符号整数高位补零,有符号整数高位情况视系统而定

应用: a >> b   等效于  a除以2的b次方

转载于:https://www.cnblogs.com/GBRgbr/archive/2012/07/28/2612849.html

你可能感兴趣的文章
10个让你忘记 Flash 的 HTML5 应用演示
查看>>
8个Python面试必考的题目,小编也被坑过 ToT
查看>>
SQL Server 使用作业设置定时任务之一(转载)
查看>>
centos 图形界面和命令行界面切换(转载)
查看>>
Maven启用代理访问
查看>>
Primary definition
查看>>
第二阶段冲刺-01
查看>>
BZOJ1045 HAOI2008 糖果传递
查看>>
发送请求时params和data的区别
查看>>
JavaScript 克隆数组
查看>>
eggs
查看>>
一步步学习微软InfoPath2010和SP2010--第七章节--从SP列表和业务数据连接接收数据(4)--外部项目选取器和业务数据连接...
查看>>
如何增强你的SharePoint 团队网站首页
查看>>
FZU 1914 Funny Positive Sequence(线性算法)
查看>>
oracle 报错ORA-12514: TNS:listener does not currently know of service requested in connec
查看>>
基于grunt构建的前端集成开发环境
查看>>
MySQL服务读取参数文件my.cnf的规律研究探索
查看>>
java string(转)
查看>>
__all__有趣的属性
查看>>
BZOJ 5180 [Baltic2016]Cities(斯坦纳树)
查看>>