位运算简易讲解
来源:互联网 发布:discuz源码 编辑:程序博客网 时间:2024/06/03 20:50
位运算&(和,一一为一,其余为0)
a=4;
b=5;
a=(0000 0100)2;
b=(0000 0101)2;
void and(int a, int b) { printf("%d\n", a&b);//一一为一,其余为0 return;}//a&b=(0000 0100)2;
位运算|(或者,有一为一,无一为0)
void either(int a, int b) { printf("%d\n", a | b);//有一为一,无一为0 return;}//a|b=(0000 0101)2;
位运算^(异或,相同为0,不同为1)
void other(int a, int b) { printf("%d\n", a^b);//相同为0,不同为1 return;}//a^b=(0000 0001)2;
位运算~(取反)
void against(int a) { printf("%d\n", ~a);//取反 return;}//~a(1111 1011)2,根据反码,补码可得为-5;
位运算>>(右移:低位去n,高位补0或1)
void rightmove(int a) { printf("%d\n", a >>2 );//右移,去掉低二位,高位补0或1 return;}//a>>2=(0000 0001)2;
位运算 <<(左移:高位去n,低位补0)
void leftmove(int a) { printf("%d\n", a << 2);//左移,去掉高二位,低位补0; return;}//a<<2=(0001 0000)2;
下面是用来测试的主函数,大家可以用来测试
void main() { int a, b; int n; scanf("%d", &n); printf("please input two int\n"); scanf("%d%d", &a, &b); switch (n) { case 1: and (a, b); break; case 2: either(a, b); break; case 3: other(a, b); break; case 4: against(a); break; case 5: rightmove(a); break; case 6: leftmove(a); break; default:break; } return;}
2 0
- 位运算简易讲解
- 位运算相关知识讲解
- 位运算讲解系列文章(目录)
- C#位运算讲解与示例[转]
- C#位运算讲解与示例[转]
- C#位运算讲解与示例
- 按位运算符讲解和运用
- C#位运算讲解与示例
- C#位运算讲解与示例
- Java位运算原理及使用讲解
- C#位运算讲解与示例[转]
- C#位运算讲解与示例
- C#位运算讲解与示例
- C#位运算讲解与示例
- C#位运算讲解与示例
- C#中的位运算讲解与示例 c#逻辑运算
- 【C/C++和指针】深入讲解位运算
- 机试算法讲解: 第57题 位运算
- 架构、框架和设计模式关系
- (1) linux 3.x
- sobel算法
- 接触 PL/SQL 第一天
- npm更新至最新版本
- 位运算简易讲解
- Hanoi Tower Problem
- Diameter of Binary Tree
- “玲珑杯”郑州轻工业学院第八届ACM程序设计大赛Problem G: 蛤玮点菜
- (gvim:7776): GLib-GObject-WARNING **
- spring一站式框架(dao层)
- (2) linux 3.x
- Ackerman函数
- 关于SQL数据库和NoSql数据库的数据库选择案例