一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
查看: 3757|回复: 20
收起左侧

给大家看一段程序非常精辟

[复制链接]
发表于 2014-5-26 11:39 | 显示全部楼层 |阅读模式
u8 gfReverse_Bits(u8 Data)
8 q0 n8 m" N( r9 F{# b# a- b! K- J
        Data=(Data<<4)|(Data>>4);  % a, L# U% |! W
        Data=((Data<<2)&0xcc)|((Data>>2)&0x33);  
6 t1 n/ J+ m4 W4 i; e* h6 }        Data=((Data<<1)&0xaa)|((Data>>1)&0x55);1 q  K  z3 `! J& l- T' f
        return Data;" T3 v3 d! ]# o# v) [
}
* L6 @% e9 b  m6 k6 ~! L- R; H7 m8 q: }4 F

1 }: S+ L" m9 X如果大家看明白了发现这个十分的精巧可以为我所用,但之前大家是怎么做的呢(一个一个来求,是的我是这样做的)?
发表于 2014-5-26 11:53 | 显示全部楼层
虽然精辟,但是在实际开发中,非常不建议这样写,因为没办法快速的让别人读懂。
发表于 2014-5-26 12:11 | 显示全部楼层
高地位反转?
( `2 G) F) z9 @8 P1 j+ ^7 e他这样写根本就没效率,直接查表快得多。
发表于 2014-5-26 12:18 | 显示全部楼层
这是基于分治思想的,在数据量大时很有优势,但这里才8位啊,优势不明显。且看C代码好像挺“精简”,但编译后就不知道会有多冗长了。" X+ H5 e4 n. F& `+ I( I
不过仍不失为一种编程学习过程的思维训练。
 楼主| 发表于 2014-5-26 12:24 | 显示全部楼层
jckimi 发表于 2014-5-26 11:53! A7 A* |0 ^7 n" N6 ~; o
虽然精辟,但是在实际开发中,非常不建议这样写,因为没办法快速的让别人读懂。

  g; E+ R. Y4 ]5 N8 C8 J5 L是有点难我花了一个小时才知道它的原理,但从另外一个角度来看还是值的,知道多一点数据的转换还是值的。' W& m9 d# s+ I$ m" ?
 楼主| 发表于 2014-5-26 12:25 | 显示全部楼层
xwj 发表于 2014-5-26 12:11
+ q$ K0 m) O% U- B# \2 |高地位反转?
9 i$ S; J3 |" |他这样写根本就没效率,直接查表快得多。
6 d3 y0 F$ M& O
是的高低位反转,那请问查找表如何查呢?能发一段同样的效果的程序来学习一下吗?
9 \+ d/ P; h  N0 P/ _2 n8 V
 楼主| 发表于 2014-5-26 12:28 | 显示全部楼层
reiyawea 发表于 2014-5-26 12:18/ {7 K) K5 _# D) r* t
这是基于分治思想的,在数据量大时很有优势,但这里才8位啊,优势不明显。且看C代码好像挺“精简”,但编译 ...
4 G& `4 P5 l0 i6 C, g7 c
在C语言里优化对汇编是有帮助的。反正我不管是写VERILOG还是C都不想绕圈子。7 O8 U+ U( ?  M' O7 N. @) z8 U$ B
 楼主| 发表于 2014-5-26 12:33 | 显示全部楼层
其实说来这个程序好简单,当然不知道好像看天书。2 w3 G' w# F! @) E0 P
它是分三个部分来处理的/ s# P& ~5 l' \4 g( ?7 g
第一首先将高低4位对调
% ?, i. y9 R: _$ I) q% W$ D$ H第二将4位中的两位对调
4 j* g' |: m, G! ^, C3 L0 z) L9 E3 x第三将2位对调
) e7 n1 }# G; [" }% s所以会有 <<4 , >>4 , <<2, >>2 ,<<1,>>1.
发表于 2014-5-26 15:39 | 显示全部楼层
非常好啊,钱些日子做了对掉,各种运算,取余 除 乘 用了个变。觉得这个再16位以上非常有意义
 楼主| 发表于 2014-5-26 16:08 | 显示全部楼层
384065902 发表于 2014-5-26 15:399 z9 z6 K5 S# W7 `2 u+ g" G
非常好啊,钱些日子做了对掉,各种运算,取余 除 乘 用了个变。觉得这个再16位以上非常有意义
- H$ Z) V0 K# u3 S
你只要看懂这个程序16位32位都会写出来了。9 X5 u7 U# j- g% H. N

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2024-5-18 11:30 , Processed in 0.065592 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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