关于51单片机c语言编程的问题

//启动A/D转换函数:StartADC()voidStartADC(ucharAddress){PinC=(bit)(Address&0x04);PinB=(bit)(... //启动A/D转换函数:StartADC()
void StartADC(uchar Address)
{
PinC = (bit) (Address & 0x04);
PinB = (bit) (Address & 0x02);
PinA = (bit) (Address & 0x01);
PinSTART = 0;
}

我用的是STC98C52,这个(bit)是什么意思啊?假如Address取值为4的话,PINA,PinB,PinC分别等于什么值啊?是几位的啊?如果可以说的详细一些,谢谢高手指点。
展开
 我来答
hychyc_2008
2009-09-06 · TA获得超过9741个赞
知道大有可为答主
回答量:1099
采纳率:100%
帮助的人:681万
展开全部
答:
PinC PinB PinA是位变量(只有两个值0、1);
Address是字节变量(八位二进制数,用16进制表示是从00H到FFH)。

这几句:
PinC = (bit) (Address & 0x04);
PinB = (bit) (Address & 0x02);
PinA = (bit) (Address & 0x01);

的意思是把 Address和后面的 0x04 0x02 0x01 进行“与”运算后,转换成位变量。赋给PinC PinB PinA。

bit是位变量的定义。

假如Address取值为4的话,PINA,PinB,PinC分别等于什么值啊?是几位的啊?

PINA为0,PinB为0,PinC为1.
举例说明如下:
0 0 0 0 0 1 0 0
0 0 0 0 0 1 0 0

0 0 0 0 0 1 0 0 与运算,按位相“与”

0 0 0 0 0 1 0 0
0 0 0 0 0 0 1 0

0 0 0 0 0 0 0 0 与运算,按位相“与”

0 1 1 0 1 1 1 0
0 0 1 1 0 0 1 0

0 0 1 0 0 0 1 0 与运算,按位相“与”

两者全为1时结果才是1.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式