标题:网上的一道题,没看明白,请帮忙解析
只看楼主
xzy199999
Rank: 4
等 级:业余侠客
帖 子:326
专家分:286
注 册:2010-11-19
结帖率:92.45%
已结贴  问题点数:20 回复次数:4 
网上的一道题,没看明白,请帮忙解析
嵌入式系统总是要用户对变量和寄存器进行位操作:例如 给定一个整型变量
a,写两段代码,第一个设置a的bit3 第二个清除a的bit3,在以上两个操作中
要保持其他的值不变

#define BIT3 (0X1<<3)
static int a;
void set_bit3(void)
{
 a |= BIT3;
}
void clear_bit3(void)
{
 a &= ~BIT3;
}
0X1<<3中,ox1是怎么来的?
a |= BIT3;a &= ~BIT3;都是啥意思啊?~表示什么?

搜索更多相关主题的帖子: 解析 
2010-11-25 15:16
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
得分:20 
0x1 就是1   0x1<<3 左移3位
~取反
在windows程序设计中经常 |=**属性添加属性 &=~**属性去掉该属性!
实在不会的话 就去看看位运算的资料吧
2010-11-25 15:44
syg823
Rank: 1
等 级:新手上路
帖 子:21
专家分:9
注 册:2010-9-19
得分:0 
不懂啊,抱歉,我刚学
2010-11-25 15:47
xzy199999
Rank: 4
等 级:业余侠客
帖 子:326
专家分:286
注 册:2010-11-19
得分:0 
回复 2楼 hahayezhe
那为什么不直接1呢?为什么要0x1?这0x表示什么?

我是初学者
2010-11-25 16:24
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
得分:0 
0x十六进制表示法  直接写 1也可以
2010-11-25 16:28



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-326863-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016762 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved