一乐电子

一乐电子百科

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

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

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

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

[复制链接]
发表于 2014-5-26 11:39 | 显示全部楼层 |阅读模式
u8 gfReverse_Bits(u8 Data)4 U- J6 X3 |( t; e8 X
{
& M* ]$ O' d+ u( d        Data=(Data<<4)|(Data>>4);  
7 X) H  }! q9 ?! N! `5 R, d        Data=((Data<<2)&0xcc)|((Data>>2)&0x33);  + ^3 E8 X! n- V
        Data=((Data<<1)&0xaa)|((Data>>1)&0x55);/ @3 A9 p. d3 u% Z# Q* W; ~5 t
        return Data;. x! w6 J8 Z3 k6 E3 Y8 ]# D
}) N9 Q% e4 [! J( {/ {

" l+ w7 K' N8 q0 \
% T. x$ x5 g. w) ^2 Z如果大家看明白了发现这个十分的精巧可以为我所用,但之前大家是怎么做的呢(一个一个来求,是的我是这样做的)?
发表于 2014-5-26 11:53 | 显示全部楼层
虽然精辟,但是在实际开发中,非常不建议这样写,因为没办法快速的让别人读懂。
发表于 2014-5-26 12:11 | 显示全部楼层
高地位反转?
0 W) ?' R$ p0 x他这样写根本就没效率,直接查表快得多。
发表于 2014-5-26 12:18 | 显示全部楼层
这是基于分治思想的,在数据量大时很有优势,但这里才8位啊,优势不明显。且看C代码好像挺“精简”,但编译后就不知道会有多冗长了。
: L7 n8 Y% B" T! u! G" I2 X) z不过仍不失为一种编程学习过程的思维训练。
 楼主| 发表于 2014-5-26 12:24 | 显示全部楼层
jckimi 发表于 2014-5-26 11:53
6 T2 @) M$ p( ^, B/ a" u1 b虽然精辟,但是在实际开发中,非常不建议这样写,因为没办法快速的让别人读懂。
2 F6 A/ T+ V- s6 Q) s
是有点难我花了一个小时才知道它的原理,但从另外一个角度来看还是值的,知道多一点数据的转换还是值的。
; K" ~4 P6 U0 N3 V
 楼主| 发表于 2014-5-26 12:25 | 显示全部楼层
xwj 发表于 2014-5-26 12:11
4 ?: ?5 w, Y7 p3 c高地位反转?0 ?+ {4 p* e) M+ R" v) o7 v! v  J3 q
他这样写根本就没效率,直接查表快得多。
0 k; i/ w% u% C
是的高低位反转,那请问查找表如何查呢?能发一段同样的效果的程序来学习一下吗?8 B3 x. l7 N0 ]
 楼主| 发表于 2014-5-26 12:28 | 显示全部楼层
reiyawea 发表于 2014-5-26 12:18/ G4 c/ l* a; [2 H- p
这是基于分治思想的,在数据量大时很有优势,但这里才8位啊,优势不明显。且看C代码好像挺“精简”,但编译 ...
' v, |6 O* ?1 t8 R# t; u
在C语言里优化对汇编是有帮助的。反正我不管是写VERILOG还是C都不想绕圈子。9 s3 ^" v- @$ g+ o/ M- B
 楼主| 发表于 2014-5-26 12:33 | 显示全部楼层
其实说来这个程序好简单,当然不知道好像看天书。
5 D4 x4 v$ {6 K2 |' A它是分三个部分来处理的
9 ]+ p- d/ h; g" A第一首先将高低4位对调
# [+ }' z! l7 J" \; Y8 z+ }第二将4位中的两位对调5 g7 n# d  }4 e$ r; o
第三将2位对调$ l3 @1 ?, R" n# ]
所以会有 <<4 , >>4 , <<2, >>2 ,<<1,>>1.
发表于 2014-5-26 15:39 | 显示全部楼层
非常好啊,钱些日子做了对掉,各种运算,取余 除 乘 用了个变。觉得这个再16位以上非常有意义
 楼主| 发表于 2014-5-26 16:08 | 显示全部楼层
384065902 发表于 2014-5-26 15:398 D* z8 Q% v* P. I* v% G
非常好啊,钱些日子做了对掉,各种运算,取余 除 乘 用了个变。觉得这个再16位以上非常有意义
5 k  T1 E+ T6 l2 x
你只要看懂这个程序16位32位都会写出来了。; s, [+ _/ R3 S+ l

本版积分规则

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

GMT+8, 2024-5-19 10:45 , Processed in 0.052328 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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