一乐电子

一乐电子百科

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

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
12
返回列表 发新帖
楼主: kenson
收起左侧

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

[复制链接]
发表于 2014-5-26 16:17 | 显示全部楼层
看不懂,我就会一步一步写
发表于 2014-5-26 18:39 | 显示全部楼层
kenson 发表于 2014-5-26 12:25- ?5 f7 g8 Z; L. d  t
是的高低位反转,那请问查找表如何查呢?能发一段同样的效果的程序来学习一下吗?

1 t9 T; q5 c$ x) I* D5 k查表反转
  1. unsigned char Byte_tab[16]={0x00,0x08,0x04,0x0c,0x02,0x0a,0x06,0x0e,0x01,0x09,0x05,0x0d,0x03,0x0b,0x07,0x0f}; - H& e0 u, Y/ H* E$ Z
  2. # d, [6 X+ I1 p4 R3 w; ^: k" _* g8 a
  3. unsigned char Reverse_Byte(unsigned char data)  
    + Z2 l4 K1 W* g& d0 J
  4. {
    8 d. o. f3 Z! f! R* W) x7 E9 b7 `( W
  5.         return ((Byte_tab[data>>4])|(Byte_tab[data&0x0f]<<4)); 1 }% I! P( ~; `- I/ E. }2 t! s) E
  6. }
复制代码
发表于 2014-5-26 19:23 | 显示全部楼层
好东西,记号一下
发表于 2014-5-26 20:36 | 显示全部楼层
本帖最后由 desertsailor 于 2014-5-27 21:35 编辑
2 ?2 _" \2 d9 t9 [0 m
, T! x+ M  }% W  {& N8 r想了一下,查表可以这样:
- x! ^3 l6 J0 N7 y! s9 P% U  `5 Z
5 |9 I! B" S5 B/ X' v( o9 T6 Zunsigned char Tab[16]={0x00,0x08,0x04,0x0C,0x02,0x0A,0x06,0x0E,0x01,0x09,0x05,0x0D,0x03,0x0B,0x07,0x0F};    //四位数据的反转,分别对应0-15的反转后的数据
+ g; Q( H  B9 ]$ @. L1 S- u4 T+ N1 f8 S2 _! {3 L/ l
//8位数据的反转
0 T) ^- b+ ?% o; O# Ounsigned char Reverse_8Bits(unsigned char Data)
* W0 \- e- J( b% Y/ ?- V{' U8 n6 L% o6 K8 J  K5 B0 Q: r0 k- v
        unsigned char temp;' ?$ u2 P3 N( ^% O# N2 h" X6 Z5 _+ y
        temp=(Tab[Data&0x0f]<<4) | Tab[Data>>4];
* I3 L+ Q4 T& N+ J        return temp;# a9 t- a0 \% D5 ^0 X7 k
}
: a- Q9 b/ p% Z4 d) M7 q1 b: Q( s* K* D" @) b! F

+ R4 Y6 v/ ]$ ^' U1 C$ J; [7 e//16位数据的反转6 I$ V0 c0 T& @+ p3 J
unsigned int Reverse_16Bits(unsigned int Data)1 W4 @  F! x5 a- C; i! c0 `
{
0 ^+ u$ O' |( V# w# z/ z! ~: z  m        unsigned int temp;( @6 j/ t" y# i5 k( M6 Z
        temp=(Reverse_8Bits((unsigned char)(Data&0x00FF))<<8) | Reverse_8Bits((unsigned char)(Data>>8));8 @! S) H9 }  F3 ?% a" G2 J
        return temp;. K3 o1 H+ L" f0 o$ @6 o# J% r& V
}

点评

不错,坛里高人真是多,学习了  发表于 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; k" D* Z. X8 [
查表反转
8 m) ?( P4 z3 W5 b8 s
果然是不错的LOOP UP TABLE 程序,对比一下我跟这程序是有异曲同工之处,# K5 T* n+ S8 R
谢谢了。
/ e5 G2 D+ j2 c% E: h
 楼主| 发表于 2014-5-27 07:40 | 显示全部楼层
desertsailor 发表于 2014-5-26 20:36* V, n! I1 \3 R) k, Y( s
想了一下,查表可以这样:
$ x: R; W; M$ B" j/ i
7 {8 d& c- v( z2 ~unsigned char Tab[16]=[0x00,0x08,0x04,0x0C,0x02,0x0A,0x06,0x0E,0x01,0x09 ...
$ d: J9 F+ C: o( e
三人同行必有我师,谢谢。% {  `1 m) ]& a1 \. E
发表于 2014-8-11 18:40 来自手机 | 显示全部楼层
为何不采用异或呢
发表于 2014-11-11 13:52 | 显示全部楼层
高低位对调,很实用的算法。

本版积分规则

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

GMT+8, 2025-4-28 17:41 , Processed in 0.047172 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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