怎么实现移位补1,算法简单点
时间:10-02
整理:3721RD
点击:
例如:1111 1110左移位变成1111 1101而不是1111 1100
顶。。
左移然后再或1不就行了吗?多一个语句就行了
不好意思,我没问明白,不过我已经弄好了。其实不只是单独或1,应为在一个多重循环里面,不能简单的或1。不过还是要谢谢你
你能告诉我是怎么弄得吗?你又把我说糊涂了
for(i=0;i<4;i++)
{ P0=SEG_CODE[array];
DUAN=1;
DUAN=0;
P0=((P0|0xff)&(0xFE<<i))|(0xf7>>(3-i)); //就是这里,共阴极数码管,循环移位
WEI=1;
WEI=0;
delay_ms(2);
}
我居然没看懂你这句的功能,求解释
因为你没看到前面的代码,所以正常,
1111 1111 和(1111 1110移位相与,低电平选中依次往左移,但后面就变0了,所以后面有加了部分运算,把0变1。新手,可能方法太笨了,
虽然还是不明白,但是你弄出来我就高兴了
我也挺笨的其实
LZ为什么要这么麻烦,直接调用函数就可以了
_crol_(要移动的数,移动位数);循环左移
_cror_(要移动的数,移动位数)循环右移
他要求是低位补1,循环左移好像不行吧
小编或者可以试试_corl_这个库函数, 实现的功能是循环左移 11111110 11111101 11111011 大概是这样、