C语言中的与或操作
来源:互联网 发布:android编程教程 编辑:程序博客网 时间:2024/06/01 10:12
问题描述
总计6个按键,判断是否全部按完,通过与或操作完成
代码实现
#include <stdio.h>#include <stdlib.h>#define KEY_SUM (1<<0 | 1<<1 | 1<<2 | 1<<3 | 1<<4 | 1<<5)#define KEY_1 (1<<0) #define KEY_2 (1<<1)#define KEY_3 (1<<2)#define KEY_4 (1<<3)#define KEY_5 (1<<4)#define KEY_6 (1<<5)int main(int argc,char *argv[]){ int value = KEY_SUM value &= ~KEY_6; printf("value = %d\n",value); return 0;}
每按下一个按键,value值进行置位一次,全部按完之后, value 会变为0 ; 这里遇到的问题是:
#include <stdio.h>#include <stdlib.h>#define KEY_SUM 1<<0 | 1<<1 | 1<<2 | 1<<3 | 1<<4 | 1<<5#define KEY_1 1<<0#define KEY_2 1<<1#define KEY_3 1<<2#define KEY_4 1<<3#define KEY_5 1<<4#define KEY_6 1<<5int main(int argc,char *argv[]){ int value = KEY_SUM value &= ~KEY_6; printf("value = %d\n",value); return 0;}
宏定义不加括号情况下, value 一直为0. 原因令我不解, 直到请教同事才发现问题:
阅读全文
0 0
- C语言中的与或操作
- C语言与或操作
- C语言中的与或非
- c语言中的按位与,与或,异或;
- C语言中的|、||、&、&&、异或、~、!
- C语言位操作--两整数中的最大值与最小值
- C语言中的#与##
- C语言异或操作的妙用
- C语言异或操作的妙用
- C语言异或操作的妙用
- c 语言中的字符串操作
- C 语言中的段位操作
- C语言中的移位操作
- c 语言中的字符串操作
- C语言中的移位操作
- C语言中的移位操作
- C语言中的文件操作
- C语言中的字符串操作
- centos7 安装php7.0
- 在VS2010上搭建FFMPEG环境与SDL环境配置
- Linux信号量机制
- 第三十三天
- 设计模式之装饰者模式
- C语言中的与或操作
- JAVA REENTRANTLOCK、SEMAPHORE 的实现与 AQS 框架
- GBDT实战
- hdu1281(二分图匹配)
- 用js实现动画效果
- HDU 1038 Biker's Trip Odometer (水题)
- poj 1753 Flip Game(dfs)_但是
- Mongo-canfestival-3-asc中对象字典编辑器的打开
- Linux系统管理-工作管理(后台程序管理)