一乐电子

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

QQ登录

只需一步,快速开始

微信扫码登录

搜索
楼主: kenson

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

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

使用道具 举报

发表于 2014-5-26 18:39 | 显示全部楼层
kenson 发表于 2014-5-26 12:25
6 k# e. w+ D3 Q/ y) v4 w6 c是的高低位反转,那请问查找表如何查呢?能发一段同样的效果的程序来学习一下吗?
2 m  \7 g* f7 R% Z9 A/ g
查表反转
  1. unsigned char Byte_tab[16]={0x00,0x08,0x04,0x0c,0x02,0x0a,0x06,0x0e,0x01,0x09,0x05,0x0d,0x03,0x0b,0x07,0x0f};
    / C  L/ d* B2 V. l( R' f
  2. : O7 v/ D7 o" u
  3. unsigned char Reverse_Byte(unsigned char data)  ! \- y  K6 h1 p: v7 ~3 \
  4. {
    9 u; C2 _' a* z9 v* i6 W- R
  5.         return ((Byte_tab[data>>4])|(Byte_tab[data&0x0f]<<4));
    2 h6 j  e$ q. m5 C
  6. }
复制代码
回复

使用道具 举报

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

使用道具 举报

发表于 2014-5-26 20:36 | 显示全部楼层
本帖最后由 desertsailor 于 2014-5-27 21:35 编辑   x" i# n" r# R* k

: D1 ^) s+ J+ U! p想了一下,查表可以这样:
% }* ~3 V! ?* J4 _( |, u4 n/ w
unsigned char Tab[16]={0x00,0x08,0x04,0x0C,0x02,0x0A,0x06,0x0E,0x01,0x09,0x05,0x0D,0x03,0x0B,0x07,0x0F};    //四位数据的反转,分别对应0-15的反转后的数据
3 S. W5 l& Q5 w, r8 {# A( E* m( \' ~8 K3 C1 c" {: @7 z
//8位数据的反转
+ M5 v* P. C# dunsigned char Reverse_8Bits(unsigned char Data)2 M0 t' ]+ A/ P. B0 X: s: Z
{
9 N/ s4 X" c& Y1 _) t, o        unsigned char temp;) n6 S2 S* M+ B& {3 g
        temp=(Tab[Data&0x0f]<<4) | Tab[Data>>4];
- H6 R4 T! |  O* n        return temp;) x$ E# |* h8 W) Y, i9 S# `
}
! M, R: K) d* g: e4 E' w. @2 n3 \
9 j2 S% U$ u/ U) A# }/ v2 g! E! ?/ x# h/ z  x$ o- U, O
//16位数据的反转" f2 c- m; p- K" W: K$ O
unsigned int Reverse_16Bits(unsigned int Data)2 E: ?8 g$ \& [+ ?
{% P* p" s/ ?' h
        unsigned int temp;
: k' N% z" |) B0 `+ U: o        temp=(Reverse_8Bits((unsigned char)(Data&0x00FF))<<8) | Reverse_8Bits((unsigned char)(Data>>8));  f/ y$ _# s5 k. s. ^
        return temp;2 K* V7 w/ E6 M2 I6 h6 L* P0 ]
}

点评

不错,坛里高人真是多,学习了  发表于 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& W0 }( V8 S# M0 J! P3 X! ]
查表反转
" l5 n  }9 k, U+ ~& Q0 d
果然是不错的LOOP UP TABLE 程序,对比一下我跟这程序是有异曲同工之处,( {% S0 X9 X. l' R( A# l- z8 a% X
谢谢了。
1 K; ~2 l8 I4 ?5 {, u8 K
回复

使用道具 举报

 楼主| 发表于 2014-5-27 07:40 | 显示全部楼层
desertsailor 发表于 2014-5-26 20:36, X' L4 q6 p# {$ N5 i# r9 D- a
想了一下,查表可以这样:0 z# S7 @# x6 t+ o* b
) e2 f4 n* T, O: y+ ^* V
unsigned char Tab[16]=[0x00,0x08,0x04,0x0C,0x02,0x0A,0x06,0x0E,0x01,0x09 ...
, m0 x# l! U8 {7 D
三人同行必有我师,谢谢。
3 G4 I% N8 V6 B/ e! @
回复

使用道具 举报

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

使用道具 举报

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

使用道具 举报

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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