求教,关于51单片机的数据操作方式。

2020-01-30 14:12发布

说实话我也不知道该怎么描述。自学的单片机,没有系统的学过,所以…………

要求是这样的。
一个数据有八个位,我把他称为12345678。
现在我需要把其中的某几个“位”做一个“反向”操作。比如将12345678换成43215678。在程序中应该如何操作呢?

QQ截图20130217102520.jpg (101.03 KB, 下载次数: 0) 下载附件 2013-2-21 16:01 上传
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
barryliu
1楼-- · 2020-02-01 06:42
本帖最后由 barryliu 于 2013-2-28 12:28 编辑

为什么没人用二楼的办法?一共没几行,占ROM不多,也不需要循环,执行很快:

unsigned char revers_high4bit(src_byte){
unsigned char tab[16]={,,,,,,,,};自已把0~16的“倒码”填进去
return ( (tab[(src_byte>>4)]<<4) | (src_byte&0xf) );
}

补充,把tab定义到rom中去,免得占内存。由于语法跟编译器有关,我就不一一写了,仅举一例:51上是加"code"关键字:unsigned char code tab[16],有些编译器是const
hbmyhuwei
2楼-- · 2020-02-01 07:57
51的程序很多的啊!

一周热门 更多>