|
' d! E. B4 c% P3 c s/ w5 E3 E+ ^/*$PAGE*/
) u- R+ i8 Y9 x/*
+ r* x s2 o: q% [- \+ ]*********************************************************************************************************
5 O6 [- w- s, \! {0 \1 K' t# j* HexToStr5 u" `* i; u* D- I
* Functions : Hex转字符串. J/ ~+ ^5 }# s- T" \
*4 Q! x0 N# a* T& O; ]% l1 x6 c
* Arguments : pSrc 被转换的Hex地址
$ K. P. ]6 b" e( x( T3 J* pDst 被转换后的字符串地址0 y/ p' {5 K( Y: P t* y% w9 I: V
* LimitLen 目的地址空间限制长度 1 C3 \( `# |' B$ T: `8 p
*
, N/ _1 l: j; y2 R% s* Returns : 无* v' C) x& @; E q! H! d
*********************************************************************************************************( [+ ?& W2 q6 d N) k& `) n# m
*/; F$ } Z' N2 Z0 Z/ W, V
CPU_VOID HexToStr(CPU_VOID *pDst, CPU_VOID *pSrc, CPU_INT16U LimitLen)
. ]- X2 x' M* T; s. q/ [{3 X. ~4 X5 Z7 U9 [4 o
CPU_INT16U i = 0;
0 B5 H1 e) M8 H6 H: y0 Q$ U CPU_INT08U ddl, ddh;2 e- W* }/ d) I
CPU_INT08U *pSrcBuff = (CPU_INT08U*)pSrc;4 b A% _4 R+ G) \6 L& O
CPU_INT08U *pDstBuff = (CPU_INT08U*)pDst;8 v- o* C% N/ p j
, F+ V& u: {1 @: Y$ W. q3 e
CPU_INT16U ValidLen = LimitLen >> 1;
+ `; z4 d' a4 p 1 k5 d" M: \! L/ N" p1 S
for (i = 0; i < ValidLen; i++)+ P0 k+ O8 J& M6 H, w9 \! H
{2 @) U+ p( M: w' X
ddh = 48 + pSrcBuff[i] / 16;% N5 H) { @6 [* W
ddl = 48 + pSrcBuff[i] % 16;
7 A' }1 ^& {% D & p& E/ I! R1 g' P
if (ddh > 57)4 I' P' W, l) \" G0 V/ }
{
5 a2 u2 y+ ~- t$ M ddh = ddh + 7;
* A0 `, k* Z+ s& e) j! F$ i- @ }
/ a5 \' J% l* s) T" `- L$ D& \0 D if (ddl > 57)3 z1 X8 S$ S4 Y. K
{- A. w3 N: N# c U' _7 R; K v
ddl = ddl + 7;3 `) I( p2 v; W$ x7 `& o8 U" S
}
( {9 r6 }( M0 T+ ]# Q % F9 {3 u; e' `7 g, J
pDstBuff[i * 2] = ddh;: n3 b$ R! T" q7 _! o- }
pDstBuff[i * 2 + 1] = ddl;
( i7 f, D3 }" T1 z9 t; G }( J; A6 o) l" g5 S6 Y6 F; P
7 ^8 n3 x G# a+ V: q. Q if (LimitLen % 2 != 0)4 G$ C$ R+ z2 H+ m2 t: c: f$ o
pDstBuff[LimitLen * 2] = '\0';% h: k, X! B- K* P6 A5 q. t; d# p
}
' ~5 x1 x* A6 L& M: \1 D自用代码,可以参考 |
|