位操作详解
来源:互联网 发布:java 非web工程 log4j 编辑:程序博客网 时间:2024/05/22 17:12
位操作详解
我们先来看看位运算操作符:& (按位与)、| (按位或)、^ (按位异或)、~ (按位取反)、>> (按位右移)、<< (按位左移)。
1、&(按位与) 从概念上来讲,就是将参与运算的两个分量对应的每一位来做逻辑与运算,若两者都为真(等于1),则结果才为真(等于1)。否则都为假(等于0)。
即:1 & 1 = 1 、1&0 = 0 、0&1 = 0、0&0 = 0
这里我们先来看看那一个8位二进制的例子:
7&8 = 0000 0111 & 0000 1000 = 0000 0000 = 0
7&6 = 0000 0111 & 0000 0110 = 0000 0110 = 6
2、| (按位或) 即把参与运算的每个分量对应的每一位来做逻辑或运算,即两者都为假(为0)时,才为假(为0),否则皆为真。
即:0|0 = 0、1|0 = 1、0|1 = 1、1|1 = 1
来看看8位二进制的例子:
7|8 = 0000 0111 | 0000 1000 = 0000 1111 = 15
7|6 = 0000 0111 | 0000 0110 = 0000 0111 = 7
3、^(按位异或) 即把参与运算的每个分量对应的每一位来做异或运算,即两者相同为假,不同为真。
即:0|0 = 0、 1|0 = 1、0|1 = 1、 1|1 = 0
看下面的例子:
7^8 = 0000 0111 ^ 0000 1000 = 0000 0111 = 7
7^6 = 0000 0111 ^ 0000 0100 = 0000 0011 = 3
4、~(按位取反) 即把二进制位的每一位进行取反运算,简而言之就是1变成0,0变成1。
直接看例子:
~7 = ~0000 0111 = 1111 1000 = 248
5 >>(按位右移)把二进制位整体向右移动。
7>>1 = 0000 0111 >> 1 = 0000 0011 = 3
7>>2 = 0000 0111 >> 2 = 0000 0001 = 1
这里右移等于除了2的N次方,N为右移的位数。
6 <<(按位左移)这里就不详细说了,和右移相反。
- C 位操作 详解
- JAVA 位操作详解
- c++位操作详解
- 位操作详解
- 位操作符号详解
- 位操作的详解
- 位运算操作详解
- [收藏]标准C++中的位操作详解
- JAVA 位操作详解 另一篇
- C/C++位操作符号详解
- 位运算操作符详解一
- 位运算操作符详解二
- Java移位操作、位运算详解
- js ~操作符(字位操作"非")详解
- Leetcode 318答案详解(基于C++位操作)
- 位操作
- 位操作
- 位操作
- iOS高效开发必备的10款Objective-C类库
- 日积月累-oracle笔记
- what hadoop good at
- 新闻编辑工具 freetextbox的使用方法
- debian aptt 和 yum的用法
- 位操作详解
- HDFS读取副本的选择策略
- 只是提醒不要忘了
- 十个优秀的iPhone app界面设计
- NYOJ 16 矩形嵌套
- 九度OJ 1016:火星A+B 长整数加法
- chrome浏览器font-size<12px无效解决办法
- [随笔追溯]我想我是真的喜欢她
- Ruby on Rails 和 J2EE:两者能否共存?