找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1459|回复: 4
打印 上一主题 下一主题
收起左侧

移位问题求教

[复制链接]
楼主
ID:99538 发表于 2016-2-22 23:34 | 只看该作者
一般情况下,是先写的在前,后写的在后面,如果你要写123456,就先写1,再写2、、、
如果要想实现你所说的效果,可以第一次写一位,第二次写两位,类推,不用移位
回复

使用道具 举报

沙发
ID:104154 发表于 2016-2-23 21:32 | 只看该作者
这样行吗,先输入6 然后左移1位 再输入5  再左移1位......输入完成后数据是654321,再用程序改变它们在内存的排列顺序,转成123456.
回复

使用道具 举报

板凳
ID:97249 发表于 2016-2-24 16:27 | 只看该作者
本帖最后由 红尘有你 于 2016-2-24 16:30 编辑

int RightMove(x,y) {  
int temp,n;  
  if(x>0)
  {
  n=len(x); //返回X的长度给n  
  y=y+x<<(n-1);//用来保存已写入的
  temp=x>>1;   
  RightMove(temp,y);
  }   
return y;//返回写入的数据
}
回复

使用道具 举报

地板
ID:106476 发表于 2016-2-26 23:20 | 只看该作者
addr=123456; for(n=0;n<6;n++)//开始传送6位数据         {                 DSIO=addr&0x01;//数据从低位开始传送                 addr>>=1;                 _nop_();                 _nop_();         }
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表