本帖最后由 QuakeGod 于 2009-12-20 02:21 编辑
这个
A = ((A & 0xaa) >> 1) | ((A & 0x55) << 1);
A = ((A & 0xcc) >> 2) | ((A & 0x33) << 2);
A = ((A & 0xf0) >> 4) | ((A & 0x0f) << 4);
不是省时间的,貌似程序很简单,但是一般单片机每次只能移动一位,所以总共要进行14次移位,若干次数据传输,9次逻辑运算。程序空间也要占用几十个字节了。
半字节查表应该是性价比最好的办法。只占用16个字节的表空间,压缩一下甚至只占用8个字节。
当然了,借助51的半字节操作,性能更好。 |