位运算
2016-04-15 10:52
246 查看
相信有一部分同学对位运算的功能还不是太了解,只是听说过,现在就和博主一起来了解一下吧!
在处理整型数值时,可以直接对组成整型数值的各个位进行操作。这意味着可以使用屏蔽技术获得整数中的各个位。位运算包括:
&(“与”)、|(“或”)、^(“异或”)、~(“非”)
这些运算符在位模式下工作。例如,如果n是一个整型变量,并且用二进制表示的n从右数第四位为1,那么
返回1;否则返回0。通过运用2的幂次方的&运算可以将其他位屏蔽掉,而只保留其中的某一位。
另外,“>>”和“<<”运算符将二进制进行右移或左移操作。当需要建立位模式屏蔽某些位时,使用这两个运算符十分方便:
警告:对移位运算符右侧的参数需要进行模32的运算(除非左边的操作数是long类型,在这种情况下需要对右侧操作数模64)。例如1<<35与1<<3或8是相同的。
在处理整型数值时,可以直接对组成整型数值的各个位进行操作。这意味着可以使用屏蔽技术获得整数中的各个位。位运算包括:
&(“与”)、|(“或”)、^(“异或”)、~(“非”)
这些运算符在位模式下工作。例如,如果n是一个整型变量,并且用二进制表示的n从右数第四位为1,那么
int fourth=(n & 0b1000) / 0b1000;//加上前缀0b就可以写二进制数
返回1;否则返回0。通过运用2的幂次方的&运算可以将其他位屏蔽掉,而只保留其中的某一位。
另外,“>>”和“<<”运算符将二进制进行右移或左移操作。当需要建立位模式屏蔽某些位时,使用这两个运算符十分方便:
int fourth=(n & (1<<3)) >> 3;最后,>>>运算符将用0填充高位;>>运算符用符号位填充高位。没有<<<运算符。
警告:对移位运算符右侧的参数需要进行模32的运算(除非左边的操作数是long类型,在这种情况下需要对右侧操作数模64)。例如1<<35与1<<3或8是相同的。
相关文章推荐
- 对以往一些笔记的看法
- 【转】C语言的协程
- 基于比较的内部排序总结
- jdbc防止sql注入方法总结
- 第三章 关于控件的一些技巧
- 产品经理技能之MRD的笔记之一
- 【转】ButterKnife的使用--不错
- 怎么删除windows中无用的服务
- 对同学的复利计算程序进行评价
- Binary Tree Postorder Traversal
- MySQL查询order by相减select相减的Sql语句
- GridView中实现DropDownList联动
- AE开发使用内存图层
- Android初学习 - 转载一篇Handler机制总结
- dede获取上级栏目名称
- gdb调试mpi程序
- swift 监听网络状态
- 文章标题
- nmap#4有趣功能
- Oracle:查看对象有没有被其他对象引用语句