c语言的单片机编程中的移位运算问题

#defineset_lcd_clklcd_kz|=(1<<clk)//置高#defineclr_lcd_clklcd_kz&=(~(1<<clk))//清0这两行程序中... #define set_lcd_clk lcd_kz|=(1<<clk) //置高
#define clr_lcd_clk lcd_kz&=(~(1<<clk)) //清0
这两行程序中的移位运算为什么是 1<<clk ,而不是 clk<<1 或 clk>>1 ??
展开
 我来答
lianpeng26
2009-08-05 · 超过20用户采纳过TA的回答
知道答主
回答量:92
采纳率:0%
帮助的人:73.6万
展开全部
看你写这两句,是两句宏定义.
lcd_kz是LCD的控制信号,是一个字节,而CLK占一个端口,也就是这一个字节的一位
在程序中可以找到CLK的具体值,是一个0-7的一个固定值,这个值的意思是CLK在这个lcd_kz字节中的第几位,第一句宏定义的意思就是把对应的CLK位置1。第二句宏定义的意思就是把对应的CLK位清零。
啊业东毯技8843
2009-08-04 · 超过26用户采纳过TA的回答
知道答主
回答量:106
采纳率:0%
帮助的人:79.5万
展开全部
因为是要将1移动clk个字节的位,而不是将clk移动1个字节的位
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
五寒梦sY
2009-08-04 · TA获得超过370个赞
知道小有建树答主
回答量:235
采纳率:0%
帮助的人:260万
展开全部
1<<clk : 1左移clk个位置,如果clk = 3,1左移3位后变成00001000;置高

clk<<1 :clk左移1位,同上clk = 3(00000011),左移1位后00000110;数据运算;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式