一乐电子

一乐电子百科

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

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

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

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

[复制链接]
发表于 2014-5-26 16:17 | 显示全部楼层
看不懂,我就会一步一步写
发表于 2014-5-26 18:39 | 显示全部楼层
kenson 发表于 2014-5-26 12:258 ^/ \$ R# N' E4 h# P
是的高低位反转,那请问查找表如何查呢?能发一段同样的效果的程序来学习一下吗?
- H2 N9 p7 D8 Y
查表反转
  1. unsigned char Byte_tab[16]={0x00,0x08,0x04,0x0c,0x02,0x0a,0x06,0x0e,0x01,0x09,0x05,0x0d,0x03,0x0b,0x07,0x0f};   O& o( ~. R- g) j3 A- S
  2. - U, a4 p# B! c% f8 X
  3. unsigned char Reverse_Byte(unsigned char data)  
    6 r1 L9 |$ |6 i- s
  4. { % _* c8 H$ Y4 [& T1 z' m' j
  5.         return ((Byte_tab[data>>4])|(Byte_tab[data&0x0f]<<4));
    , {' x  f0 S% s+ q- ~( m
  6. }
复制代码
发表于 2014-5-26 19:23 | 显示全部楼层
好东西,记号一下
发表于 2014-5-26 20:36 | 显示全部楼层
本帖最后由 desertsailor 于 2014-5-27 21:35 编辑 ! E3 i3 R3 u9 Y! N: Y% L; i3 f3 E
4 L) O; l& @* L9 ]) J( W7 W5 v8 Q
想了一下,查表可以这样:9 ?) F: v! X" [2 r( @% C" g

  ?- W+ M3 R$ [- X5 P1 Gunsigned char Tab[16]={0x00,0x08,0x04,0x0C,0x02,0x0A,0x06,0x0E,0x01,0x09,0x05,0x0D,0x03,0x0B,0x07,0x0F};    //四位数据的反转,分别对应0-15的反转后的数据: ~( d( |, |, x. M

5 u: A  w* ]* }; ?4 M# D, X$ V//8位数据的反转
' n. h7 ^+ |! k5 Z3 X5 Bunsigned char Reverse_8Bits(unsigned char Data)
% q6 ]. z  ?3 S  b# N( S7 [- {6 K{1 b6 _4 }* l9 j# Z5 Z
        unsigned char temp;5 A) Q' y' ]) ]" ^( E- ^) A
        temp=(Tab[Data&0x0f]<<4) | Tab[Data>>4];, W0 S# {7 }8 ?8 V
        return temp;
/ u+ e8 ]# a. @+ \7 W}# v$ s9 P  J5 b8 ]9 F7 H

7 x* n9 e* b4 n' L/ E0 A4 k
2 m" n: n: z3 ], U//16位数据的反转
4 }( _2 w9 T& n- Vunsigned int Reverse_16Bits(unsigned int Data)
1 s; K6 t0 U( c6 Q+ J{( g, {7 K& A6 I0 Z* |* @
        unsigned int temp;' l# v+ t/ l4 }, g
        temp=(Reverse_8Bits((unsigned char)(Data&0x00FF))<<8) | Reverse_8Bits((unsigned char)(Data>>8));8 T( ^8 ?" ^3 A. {4 ]/ T
        return temp;
3 Z, }0 C5 U/ p}

点评

不错,坛里高人真是多,学习了  发表于 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:394 {+ d9 b" ?; P" k+ }( A
查表反转

# i5 D+ q# k5 i2 `4 ?) q# @8 x4 h* w果然是不错的LOOP UP TABLE 程序,对比一下我跟这程序是有异曲同工之处,6 J) X+ y2 G, k, a/ \/ [. b
谢谢了。) Q  A6 S  F  ?0 q" L
 楼主| 发表于 2014-5-27 07:40 | 显示全部楼层
desertsailor 发表于 2014-5-26 20:36
- `. x8 x% n8 W; E5 `想了一下,查表可以这样:
6 {! R1 S% K+ s4 F4 n9 z- i% x, @  ^& a* ~& M. I: K2 r
unsigned char Tab[16]=[0x00,0x08,0x04,0x0C,0x02,0x0A,0x06,0x0E,0x01,0x09 ...
# ], X7 V, a5 D% H7 V7 Q- j9 T
三人同行必有我师,谢谢。
; X  q* A' W: Z4 E) y
发表于 2014-8-11 18:40 来自手机 | 显示全部楼层
为何不采用异或呢
发表于 2014-11-11 13:52 | 显示全部楼层
高低位对调,很实用的算法。

本版积分规则

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

GMT+8, 2024-6-3 18:13 , Processed in 0.054885 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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