标题: 单片机C语言左移程序怎么改成右移 [打印本页]

作者: 華夏創    时间: 2019-6-30 23:05
标题: 单片机C语言左移程序怎么改成右移
m=0x7f;
  k=0;
while(k!=8)
  {
m=_crol_(m,1);这段是左移1位,怎么改成右移

  led_8=m;
  ys(500);
  k++;


作者: wulin    时间: 2019-7-1 06:19
m=_crol_(m,1);//循环左移1位
m=_cror_(m,1);//循环右移1位
作者: gb302    时间: 2019-7-1 08:07
m=_cror_(m,1)
作者: gb302    时间: 2019-7-1 08:09
_crol_ 字符循环左移
_cror_ 字符循环右移
_irol_ 整数循环左移
_iror_ 整数循环右移
_lrol_ 长整数循环左移
_lror_ 长整数循环右移
作者: lon7085    时间: 2019-7-1 09:09
可以通过右移函数_cror_()来实现
作者: ABCDEFGHIJKLMNO    时间: 2019-7-1 09:48
m=_cror_(m,1);//循环右移1位
作者: BLK    时间: 2019-7-1 11:00
_cror_是右移
作者: 木原晴日    时间: 2019-7-1 11:21
m=_cror _(m,1);
和向左移动的区别就是cror:character to rotate left(right)最后一个字母一个是left的首字母 一个是right的首字母
作者: lyf12    时间: 2019-7-1 12:13
m=_cror_(m,1);
作者: 王秋冬    时间: 2019-7-1 22:41
只是一个字母的区别,就产生相反的结果。
作者: zfddfer741    时间: 2019-7-4 13:30
这个应该是m=_cror_(m,1); //后面的1表示移一位,前面的cror表示循环右移,希望对你有帮助
作者: Smq1234    时间: 2019-7-4 15:22

#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
void delayms(uint);
uchar aa;
void main()
{
aa=0xfe;
//你原来的
while(1)
{
P1=aa;
delayms(500);
aa=_crol_(aa,1);
}
//下面我写的
//右移1位
while(1)
{
P1=aa;
delayms(500);
aa=aa<<1; //右移1位
}
//左移1位
while(1)
{
P1=aa;
delayms(500);
aa=aa>>1; //左移1位
}
//右移8位
while(1)
{
unsigned char i;
for(i=0;i<8;i++)
{
P1=aa;
delayms(500);
aa=aa>>1;
}
}
}
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
作者: zhangkaichao    时间: 2019-7-4 16:04
可以改成m=_crol_(m,1);这样可以实现右移一位,希望我的回答对你有帮助
作者: ajjib    时间: 2019-7-4 16:29
m=_cror_(m,1)
作者: 累不死的狗    时间: 2019-7-4 19:37
m=_cror_(m,1);
作者: 13317970316    时间: 2020-10-20 23:35
改成cror
作者: 上进求学    时间: 2020-10-21 08:51
_crol_是左移函数,_cror_是右移函数,
作者: TTQ001    时间: 2020-10-21 09:07
使用m = _cror_(m,1),但这将更改代码的输出,这是您想要的吗?
作者: added    时间: 2020-10-21 11:26
m=_cror_(m,1);//循环右移1位




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1