|
2 a B0 I$ d' [
/*$PAGE*/5 n- ?! @" J" ~& o) S! e
/*
4 p2 z0 O4 |2 Q3 a, B) ~/ b0 |*********************************************************************************************************
3 S; j( _+ O3 h) V* HexToStr
8 J+ V$ G$ h \; i* Functions : Hex转字符串; x. r6 _$ i* F" E. s# s5 t' I
*
2 P; F7 Z6 f$ l* Arguments : pSrc 被转换的Hex地址
; X; N6 x% f& s) `, q* pDst 被转换后的字符串地址
7 X, h$ b9 W. Y: _: U& f) E* LimitLen 目的地址空间限制长度
3 J4 f! q7 s7 ?* ! F s7 ^& V: u1 A) E
* Returns : 无* M- c& D$ K7 ~4 ?/ ?
*********************************************************************************************************, U4 [1 A; o/ a0 A! e. N2 h0 F' Q
*/
7 E, [3 @$ g' i- N* O6 y: GCPU_VOID HexToStr(CPU_VOID *pDst, CPU_VOID *pSrc, CPU_INT16U LimitLen)+ i, O* n! n# E; i, j
{- J" C6 y3 U H J# C" x
CPU_INT16U i = 0;
5 C2 z3 M, Z6 \6 m$ O CPU_INT08U ddl, ddh;7 o8 [5 _/ j- |" l7 j! z3 g
CPU_INT08U *pSrcBuff = (CPU_INT08U*)pSrc;2 D9 Q* b2 n7 @* _ {8 {
CPU_INT08U *pDstBuff = (CPU_INT08U*)pDst;+ d6 E$ l6 L" G% H
* J; }& v4 m, I. J& Y5 z) C1 A
CPU_INT16U ValidLen = LimitLen >> 1;6 A Z* ?8 j! s$ g! L
" p, x7 r) R/ v
for (i = 0; i < ValidLen; i++)
$ s+ D9 R9 P! w2 @: J& M0 ^9 _. l1 E( N+ ] {& L/ q' R0 l D
ddh = 48 + pSrcBuff[i] / 16;, t: @6 a- V( n
ddl = 48 + pSrcBuff[i] % 16;
% \3 G* Y( C0 J0 Q" ~/ z6 T * v5 j0 L! \( ]% O5 l* b
if (ddh > 57) v: z' L6 E5 @% Z7 d
{
+ @2 L* e% v8 v ddh = ddh + 7;
) T6 l! Z7 t6 D& Z }! b- [: K% ~1 ~! O9 V
if (ddl > 57)5 n6 }" o* e5 l$ ]7 q
{$ }/ S9 }' k+ J7 N0 A; `7 S; q
ddl = ddl + 7;* a# ~+ l( P$ v5 n
}
* F+ W! w. p% B: O 6 q. t2 g! h4 x6 _
pDstBuff[i * 2] = ddh;
5 y8 V( E( k0 b m+ Q4 k0 v. ] pDstBuff[i * 2 + 1] = ddl;8 {6 N; x% F2 L# ^! H! w
}
0 M; L: K7 c# R% K! `8 q/ ^ # X" v6 T5 p5 e3 |7 m$ V
if (LimitLen % 2 != 0)" G5 L5 t/ k4 Q- s& w* A
pDstBuff[LimitLen * 2] = '\0';
1 h; k" l8 V( h. w- N; W}4 |/ [. n2 h- \( ]9 k
自用代码,可以参考 |
|