首页 > 电脑

单片机c语言问题

更新时间2020-10-27 10:19:38

void 74hc595(uint dat) //dat=0x85=10000101
for(a=0;a<8;a++)
{
SER=dat>>7;
dat<<1;
}
右移7位是00000001接下来为什么左移1位就是00001010不应该是00000010吗?
大神告知

①SER=dat>>7;的执行过程是:把dat的值10000101右移7位后的值00000001,赋值给SER,所以SER=00000001;但并没有赋值给dat,dat还是原来的值10000101。
②再执行dat<<1;即dat=10000101左移1位,移位后的值为00001010(注意到此值并未赋给dat)。

相关标签:c语言

上一篇:PCB板上B1、B2是什么元件?

下一篇:笔记本电脑怎么有效的散热