位运算符
来源:互联网 发布:采购流程优化 编辑:程序博客网 时间:2024/06/18 17:07
位运算符
对数据的操作, 精确到每一位
按位 与 .
举例
用途
信息采集, 如 去 5的第0位和第6位
按位 或.
举例
按位 取反.
举例
按位 异或.
异或, 相同为0, 相异为1
举例
左移, 整体左移, 末尾补0
每左移一位, 相当于 乘以 2
举例
右移, 整体右移, 首位补符号位
每右移一位, 相当于 除以 2
举例
对数据的操作, 精确到每一位
1, &
功能:按位 与 .
举例
(1) 5 & 7 5 -- 0 0000101 & 7 -- 0 0000111 -------------------- 5 -- 0 0000101 (2) 5 & (-7) 5 -- 0 0000101 & -7 -- 1 1111001 -------------------- 1 -- 0 0000001
用途
信息采集, 如 去 5的第0位和第6位
5 -- 0 0000101 & 65 -- 0 1000001 -------------------- 1 -- 0 0000001
2, |
功能按位 或.
举例
(1) 5 & 7 5 -- 0 0000101 | 7 -- 0 0000111 -------------------- 7 -- 0 0000111 (2) 5 & (-7) 5 -- 0 0000101 | -7 -- 1 1111001 -------------------- 补码 -- 1 1111101 -3 1 0000011
3, ~
功能按位 取反.
举例
(1) ~5 ~ 5 -- 0 0000101 --------------------- - -- 1 1111010 -6 1 0000110 (1) ~(-6) ~ -6 -- 1 1111010 --------------------- 5 -- 0 0000101
4, ^
功能按位 异或.
异或, 相同为0, 相异为1
举例
5 -- 0 0000101 ^ 7 -- 0 0000111 -------------------- 2 -- 0 0000010
5, <<
功能左移, 整体左移, 末尾补0
每左移一位, 相当于 乘以 2
举例
(1) 5<<1 -- 0 0000101 --------------------- 10 -- 0 0001010 (2) (-5)<<1-- 1 1111011 --------------------- - -- 1 1110110 -10 1 0001010
6, >>
功能右移, 整体右移, 首位补符号位
每右移一位, 相当于 除以 2
举例
(1) 5>>1 -- 0 0000101 --------------------- 2 -- 0 0000010 (2) (-5)>>1-- 1 1111011 --------------------- - -- 1 1111101 -3 1 0000011
#include <stdio.h>int main(void) { printf("\n============= & ================\n"); // & printf( "%d \n", 5 & 7 ); // 5 printf( "%d \n", 5 & (-7) ); // 1 // && , 逻辑运算符 printf( "%d \n", 5 && 7 ); // true && true = true printf( "%d \n", 0 && 7 ); // false && true = false printf("\n============= | ================\n"); printf( "%d \n", 5 | 7 ); // 7 printf( "%d \n", 5 | (-7) );// -3 printf("\n============= ~ ================\n"); printf( "%d \n", ~5 ); // -6 printf( "%d \n", ~(-6) ); // 5 printf("\n============= ^ ================\n"); printf( "%d \n", 5 ^ 7 ); // 2 printf("\n============= << ================\n"); printf( "%d \n", 5<<1 ); // 10 printf( "%d \n", (-5)<<1 ); // -10 printf("\n============= >> ================\n"); printf( "%d \n", 5>>1 ); // 2 printf( "%d \n", (-5)>>1 ); // -3 printf( "%d \n", (-5)/2 ); // -2 return 0;}
- 位运算符和位运算
- 位运算符和位运算
- 位运算符和位运算
- 位运算符和位运算
- 位运算符和位运算
- 位运算符和位运算
- 位运算符和位运算
- 位运算符与位运算
- sqlite位运算,sql位运算符
- 位运算符和位运算
- 位运算符和位运算
- 位运算、移位运算符
- Java位运算符
- 说说位运算符
- 位运算符
- Java 位运算符
- Java 位运算符
- Java 位运算符
- intel hadoop and Intel E5
- HDU 1026 (BFS+记录路径)
- spring的jar包的添加
- 二分查找(非递归JAVA)
- hdu4530 小Q系列故事——大笨钟
- 位运算符
- s5pv210 NV12 to RGB (fimc1实现硬解码数据在LCD显示)
- How to create PFX file
- ORACLE的工作机制
- TMyUniDBGrid.SelectedField
- VC窗口透明
- QWS透明后鼠标移动出现阴影现象解决办法
- 关于storm-0.8.2框架与github中storm-starter工程不兼容的疑问
- Timus 1081. Binary Lexicographic Sequence