c 语言 位运算笔记。
2016-03-24 10:48
351 查看
#include<stdio.h> #include<stdlib.h> //& // 11 1 // 10 0 // 01 0 // 00 0 //1001 0011 //1111 0000 //1001 0000 //10 -》0 00-》0 1,0 0-》0 //11 -》1 0&1=0 1,0与1想与,结果不变 //XXXX XXXX //1111 0111 //1011 0111 //1111 0000 //1011 0000 //>>4 //0000 1111 //0000 0111 // X Y void main1() { unsigned char ch = 255;// 1111 1111 unsigned char nch = 15;// 0000 1111 // 0000 1111 unsigned char rch = ch&nch; printf("%d", rch); getchar(); }
位或:
#include<stdio.h> #include <stdlib.h> // | // 11 1 // 10 1 // 01 1 // 00 0 //XXXX XXXX //0000 1111 //11 ->1 01-> 1 0,1 -1 ->1 //10->1 00->0 1,0 -0 不变 void main2() { unsigned char ch = 255;// 1111 1111 unsigned char nch = 15;// 0000 1111 // 1111 1111 unsigned char rch = ch|nch; printf("%d", rch); getchar(); }
异或:
#include <stdio.h> #include <stdlib.h> // ^ // 11 0 // 00 0 // 10 1 // 01 1 //10 ->1 ,00->0 0 不变 //01->1 ,11->0 遇到1反转 //1011 0111 //0000 1111 //1011 1000 void main6() { int a = 10; // 0000 1010 int b = 20;// 0001 0100 printf("\na=%d,b=%d", a, b); a = a^b; // 0000 1010 a // 0001 0100 b // 0001 1110 a b = a^b; // 0000 1010 b=10 // 0001 1110 a a = a^b; // 0001 0100 a=20 printf("\na=%d,b=%d", a,b); system("pause"); } void main4() { unsigned char ch = 255;// 1111 1111 unsigned char nch = 0; unsigned char rch = ch^nch; printf("%d", rch); system("pause"); } void main3() { unsigned char ch = 255;// 1111 1111 unsigned char nch = 15;// 0000 1111 // 1111 0000 unsigned char rch = ch^nch; printf("%d", rch); system("pause"); }
相关文章推荐
- html5 三角形
- 20款最好的jQuery文件上传插件
- CPU过高的排查方法
- 怎么实现MindMapper中的聚焦功能的灵活运用
- 查看Oracle最耗性能SQL以及查看锁表进程SQL语句1和杀掉锁表进程
- 使用Android Studio布局加载器异常的问题
- AndroidStudio 用过很好用的控件 android layout id converter
- iOS 手势冲突问题
- less的运算操作
- Java多线程-线程的同步与锁
- android开发需要知道的
- 图像分割技术(2)
- Windows 临界区,内核事件,互斥量,信号量。
- 当 智能箭头 碰到 方向箭头 。。。。。。。
- C++读取csv表格文件到vector
- XCODE 出现 The operation couldn't be completed.(LaunchServicesError error 0.)错误修复
- group by timestamp
- Linux内核分析之扒开系统调用的三层皮(下)
- runtime简单理解
- Android中Handler Runnable与Thread的区别详解