按位运算符(>> << ~ & ^ | )及实例
2013-08-08 20:14
1131 查看
1.移位运算符 :运算符<<和运算符>>的操作数可以是任意整型或字符型的。对两个操作数都会进行整型提升,返回的类型是左边操作数提升后的类型。
i<<j的值是将i中的位左移j位后的结果。每次从i的最左端溢出一位,在i的最右端补一个0位。
i>>j的值是将i中的位右移j位后的结果。如果i是无符号数或者非负数,则需要左端补一个0位。如果i是负数,其结果由实现定义的。
例如:
unsigned int i,j;
i = 13; // i的二进制数为: 0000000000001101
j = i << 2; // j的值为52,二进制为:0000000000110100
j = i >> 2; //j的值为3 二进制为: 0000000000000011
2.按位求反运算符 (~) 按位与运算符(&) 按位异或运算符(^) 按位或运算符(|):这四种运算符都是对操作数的每一位执行布尔运算。
~ 运算符:对操作数求反操作,即将每一个0替换成1,把每一个0替换成1;
& 运算符:两个操作数相应的位执行逻辑与运算。
^ 和 | 运算符: 都是对两个操作数执行逻辑或运算,差异是当两个操作数的位都是1时,^产生0而|产生1.
例如:
int i, j,k;
i = 21 ; //二进制数为: 0000000000010101
j = 56 ; // 二进制数为: 0000000000111000
k = ~i ; // k = 65514 二进制数为: 1111111111101010
k = i ^ j; // k = 45 二进制为: 0000000000101101
k = i & j; // k = 16 二进制为: 0000000000010000
k = i | j ; // k = 61 二进制为: 0000000000111101
优先级: 由高到低: ~ & ^ |
i<<j的值是将i中的位左移j位后的结果。每次从i的最左端溢出一位,在i的最右端补一个0位。
i>>j的值是将i中的位右移j位后的结果。如果i是无符号数或者非负数,则需要左端补一个0位。如果i是负数,其结果由实现定义的。
例如:
unsigned int i,j;
i = 13; // i的二进制数为: 0000000000001101
j = i << 2; // j的值为52,二进制为:0000000000110100
j = i >> 2; //j的值为3 二进制为: 0000000000000011
2.按位求反运算符 (~) 按位与运算符(&) 按位异或运算符(^) 按位或运算符(|):这四种运算符都是对操作数的每一位执行布尔运算。
~ 运算符:对操作数求反操作,即将每一个0替换成1,把每一个0替换成1;
& 运算符:两个操作数相应的位执行逻辑与运算。
^ 和 | 运算符: 都是对两个操作数执行逻辑或运算,差异是当两个操作数的位都是1时,^产生0而|产生1.
例如:
int i, j,k;
i = 21 ; //二进制数为: 0000000000010101
j = 56 ; // 二进制数为: 0000000000111000
k = ~i ; // k = 65514 二进制数为: 1111111111101010
k = i ^ j; // k = 45 二进制为: 0000000000101101
k = i & j; // k = 16 二进制为: 0000000000010000
k = i | j ; // k = 61 二进制为: 0000000000111101
优先级: 由高到低: ~ & ^ |
相关文章推荐
- <JSP userBean>实例
- <2>Android HAL 发展。文件。两种架构。实例解析
- <实例>放苹果问题
- <div+css页面布局课堂笔记>11---页面布局网站首页设计实例__终极版(仿csdn首页)
- <实例>C++中交换两数值的几种方法
- <div+css页面布局课堂笔记>9---页面布局网站首页设计实例__1
- <Android>在Activity被非正常杀死并重建时,使用savedInstanceState进行数据恢复的简单实例
- <实例>输出给定字符串的全部连续子序列
- java的位运算符详解实例——&、^、|、~、<<、>>、>>>
- <实例>C++ 将一句话里的单词进行倒置,标点符号不倒换——使用string库实现
- <div+css页面布局课堂笔记>10---页面布局网站首页设计实例__2
- <实例>消除内嵌括号——使用栈实现
- <转>android单实例运行方法
- [HTML5-Canvas] HTML 5的<canvas>元素教程和实例
- 使用<a>标签提交action会执行两次后台方法的原因(反射机制小实例问题的解决)
- <实例>C++ 将一句话里的单词进行倒置,标点符号不倒换。
- <转>Android API 中文(14) —— ViewStub
- <context:annotation-config/>
- <copy>AWS 亚马逊云是什么,怎么发展起来的
- <context-param>与<init-param>的区别与作用