先把数据包转换成按字节的结构,如:array[1...1024] of byte
然后用以下的函数把BYTE转换为STRING;
function bytetohex(src: byte): string;
begin
setlength(result, 2);
asm
mov edi, [result]
mov edi, [edi]
mov al, src
mov ah, al // save to ah
shr al, 4 // output high 4 bits
add al, '0'
cmp al, '9'
jbe @@outcharlo
add al, 'a'-'9'-1
@@outcharlo:
and ah, $f
add ah, '0'
cmp ah, '9'
jbe @@outchar
add ah, 'a'-'9'-1
@@outchar:
stosw
end;
end;
这个函数的好处是可以直接显示16进制的数,strtoint($+str)只能显示10进制的16进制数