一乐电子

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

QQ登录

只需一步,快速开始

微信扫码登录

搜索
楼主: kenson

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

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

使用道具 举报

发表于 2014-5-26 18:39 | 显示全部楼层
kenson 发表于 2014-5-26 12:256 q6 }2 T, r# f" `$ r
是的高低位反转,那请问查找表如何查呢?能发一段同样的效果的程序来学习一下吗?

! s% n3 X8 t- ]% L2 F3 r查表反转
  1. unsigned char Byte_tab[16]={0x00,0x08,0x04,0x0c,0x02,0x0a,0x06,0x0e,0x01,0x09,0x05,0x0d,0x03,0x0b,0x07,0x0f};
    $ T& e0 a4 v5 [7 v! J/ F% m  z

  2. & {. Q9 e0 K6 D. F& A! C
  3. unsigned char Reverse_Byte(unsigned char data)  
    ' y" u; k) c/ n6 D% \! u
  4. { . V0 l0 t8 D) U* `: F
  5.         return ((Byte_tab[data>>4])|(Byte_tab[data&0x0f]<<4));
    ; R4 W2 U3 n9 p4 ]
  6. }
复制代码
回复

使用道具 举报

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

使用道具 举报

发表于 2014-5-26 20:36 | 显示全部楼层
本帖最后由 desertsailor 于 2014-5-27 21:35 编辑 ) Z& m8 x7 o* y% C; [6 ?' @
3 G* U0 _; P( G8 `
想了一下,查表可以这样:
7 M. @3 \- x- j, c$ s8 T% x1 n9 w% E3 N' A0 n) Z# n/ Y
unsigned char Tab[16]={0x00,0x08,0x04,0x0C,0x02,0x0A,0x06,0x0E,0x01,0x09,0x05,0x0D,0x03,0x0B,0x07,0x0F};    //四位数据的反转,分别对应0-15的反转后的数据
- u1 B0 ~8 r/ }1 I' U! s* f4 m5 p( f$ @; `+ D
//8位数据的反转
6 I- L$ [+ h6 `3 E+ Funsigned char Reverse_8Bits(unsigned char Data)
+ Y4 Q$ J6 d3 d9 W% \) q6 \{1 y2 ^' \8 s( S; Q& R# P* s6 x2 P4 t6 ?
        unsigned char temp;
5 F% R8 B& I: l6 g& b        temp=(Tab[Data&0x0f]<<4) | Tab[Data>>4];
+ l: c7 O5 D8 e6 O# q        return temp;0 o8 i0 b. y  }7 s3 z
}0 p' _$ A# @+ @8 C# G5 L" E) o

9 Y5 X' s& \; T+ Q4 i7 }% w7 ^9 n9 Z; Z
//16位数据的反转
3 r$ z: u" _# s) N- t9 Iunsigned int Reverse_16Bits(unsigned int Data)
. |3 D4 B: O2 v2 T{/ |+ b6 B4 s7 n8 g/ g
        unsigned int temp;
5 _9 M1 A. }8 F: V) f5 f        temp=(Reverse_8Bits((unsigned char)(Data&0x00FF))<<8) | Reverse_8Bits((unsigned char)(Data>>8));
2 @0 |3 y0 i/ [" R2 {        return temp;
4 ?, C4 C; U7 S}

点评

不错,坛里高人真是多,学习了  发表于 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
5 {7 p1 a: ^8 a; B: F) h: q6 ^" x查表反转
, \! f! z* @2 G5 T$ ~5 [6 A1 q% O
果然是不错的LOOP UP TABLE 程序,对比一下我跟这程序是有异曲同工之处,$ p8 n  u0 v, L' M0 x4 |" R" e4 }/ h
谢谢了。
& f* t: y9 x- x4 t2 Z% {
回复

使用道具 举报

 楼主| 发表于 2014-5-27 07:40 | 显示全部楼层
desertsailor 发表于 2014-5-26 20:36+ c6 \$ o* F/ `- x1 Q! u+ Q5 }
想了一下,查表可以这样:1 \7 [5 {, y# t0 k$ l

" I6 {/ V" u7 j7 R9 Ounsigned char Tab[16]=[0x00,0x08,0x04,0x0C,0x02,0x0A,0x06,0x0E,0x01,0x09 ...

4 V. e! C5 U# S" H" X三人同行必有我师,谢谢。
  `% a- Q2 n$ v6 z2 F
回复

使用道具 举报

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

使用道具 举报

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

使用道具 举报

本版积分规则

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

GMT+8, 2025-8-20 12:04 , Processed in 0.037400 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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