一乐电子

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

QQ登录

只需一步,快速开始

微信扫码登录

手机号码,快捷登录

手机号码,快捷登录

搜索
楼主: kenson

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

[复制链接]
发表于 2014-5-26 16:17 | 显示全部楼层
看不懂,我就会一步一步写
回复

使用道具 举报

发表于 2014-5-26 18:39 | 显示全部楼层
kenson 发表于 2014-5-26 12:252 }$ l% Q0 H5 C. u& l) U0 g# Q
是的高低位反转,那请问查找表如何查呢?能发一段同样的效果的程序来学习一下吗?
+ k* m" J+ m  h0 a: D2 }
查表反转
  1. unsigned char Byte_tab[16]={0x00,0x08,0x04,0x0c,0x02,0x0a,0x06,0x0e,0x01,0x09,0x05,0x0d,0x03,0x0b,0x07,0x0f}; % k$ L$ }% r9 f8 D  e4 f8 M
  2. 5 q0 q; V( X1 X) w
  3. unsigned char Reverse_Byte(unsigned char data)  7 ?( h, G3 w3 d0 X' n) d  O
  4. { 3 z1 ~& E8 ?  C" `0 \: r8 X% I
  5.         return ((Byte_tab[data>>4])|(Byte_tab[data&0x0f]<<4)); 9 |9 B0 _* q0 l) Q! m% V3 ^
  6. }
复制代码
回复

使用道具 举报

发表于 2014-5-26 19:23 | 显示全部楼层
好东西,记号一下
回复

使用道具 举报

发表于 2014-5-26 20:36 | 显示全部楼层
本帖最后由 desertsailor 于 2014-5-27 21:35 编辑 6 E* m( U0 G: _; v" J0 d9 A
. Z/ Y% {7 _" V# z' E4 d
想了一下,查表可以这样:5 h. V) i* Y3 H

; t0 ]; y) H9 a8 \3 P  ?unsigned char Tab[16]={0x00,0x08,0x04,0x0C,0x02,0x0A,0x06,0x0E,0x01,0x09,0x05,0x0D,0x03,0x0B,0x07,0x0F};    //四位数据的反转,分别对应0-15的反转后的数据
' i/ d" L, W- g3 @7 \' @: g+ c; o1 k
//8位数据的反转' U% {) }$ R& @; f
unsigned char Reverse_8Bits(unsigned char Data)  o! m9 _. d+ s
{! t" U  S9 N  `- U! e" Y6 I, x
        unsigned char temp;
+ D# w% C+ s$ S4 B0 d4 ~        temp=(Tab[Data&0x0f]<<4) | Tab[Data>>4];
! f8 Q2 _) _/ P2 U        return temp;& v+ r& v  G: ~) ~3 Z
}
# e0 s4 o" Q6 O( X3 Q6 T* `* a1 g8 a0 H* d  Z& j& J4 H9 ]

. F1 H- L5 f/ _0 O1 A" f. l//16位数据的反转
) `4 z% B8 d, E7 {) I: I  t/ q) J% ~unsigned int Reverse_16Bits(unsigned int Data)
  L. W1 A6 ]& \' b% f8 b{
( J/ p4 M  h. f, l! H        unsigned int temp;& M+ Y5 F& v6 x  j
        temp=(Reverse_8Bits((unsigned char)(Data&0x00FF))<<8) | Reverse_8Bits((unsigned char)(Data>>8));
1 |9 R- g  l' M6 H8 l% g        return temp;! e9 V6 e& e- g9 l3 q
}

点评

不错,坛里高人真是多,学习了  发表于 2014-5-27 08:05
回复

使用道具 举报

发表于 2014-5-26 20:44 | 显示全部楼层
呵呵,上面有兄弟已经发过了,想到一块儿去了。
回复

使用道具 举报

发表于 2014-5-26 20:51 | 显示全部楼层
完全看不懂,总之就是很厉害的样子....
回复

使用道具 举报

 楼主| 发表于 2014-5-27 07:39 | 显示全部楼层
HFMBFUVR 发表于 2014-5-26 18:39
# x3 f( ^4 q& n3 @9 s3 Q查表反转
& e' \" Z6 y: g9 E2 l
果然是不错的LOOP UP TABLE 程序,对比一下我跟这程序是有异曲同工之处,
$ _6 R) H- y/ q' w谢谢了。
4 R! E: O( a; K/ n! o
回复

使用道具 举报

 楼主| 发表于 2014-5-27 07:40 | 显示全部楼层
desertsailor 发表于 2014-5-26 20:36
( `& X: }. {7 R4 v2 ~3 d想了一下,查表可以这样:, t0 h. }4 T; s* Y/ p4 Q9 E+ ^

7 G2 U) U/ X+ H$ i( @, Q" Ounsigned char Tab[16]=[0x00,0x08,0x04,0x0C,0x02,0x0A,0x06,0x0E,0x01,0x09 ...

3 W. ]6 }! g0 V' v2 G三人同行必有我师,谢谢。/ D8 M2 w: c0 ~$ D
回复

使用道具 举报

发表于 2014-8-11 18:40 来自手机 | 显示全部楼层
为何不采用异或呢
回复

使用道具 举报

发表于 2014-11-11 13:52 | 显示全部楼层
高低位对调,很实用的算法。
回复

使用道具 举报

本版积分规则

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

GMT+8, 2026-4-19 16:29 , Processed in 0.044099 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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