怎样把一组16进制的数据一个字节一个字节的放在一个数组中??? (50分)

  • 主题发起人 主题发起人 小菜鸟
  • 开始时间 开始时间

小菜鸟

Unregistered / Unconfirmed
GUEST, unregistred user!
假如我接收到一组数据,有16个字节。
怎样才能把这组数据一个字节一个字节的放在一个
aa:array[0..15] of byte中???
 
1.应该可以,但请把问题写清楚。
2.先用strtoint()把edit.txt变成integer,将该数除以2,取余数,得到二进制最低位
将所得结果再除以2,如此循环。
3.不懂你的意思。
 
1.var aa:array[0..5]of byte;
bb:string;
move(bb,aa,sizeof(bb));
2.funtion tinttobin(value:longint;size:integer):string;
var i:integer;
begin
result:='';
for i:=sizedo
wnto 0do
begin
if value and(1shl i)<>0 then
begin
result:=result+'1';
end else
begin
result:=result+'0';
end;
end;
end;
 
就是我对接收的数据做crc校验,
里面有一个有256字节的数据表
有一段程序要求查这个表
CRC:=0;
for i=0 to 4 then
begin
CRC:=CRC Xor CHR;(CHR为接收到数据的第一个字节)
CRC:=CRC_TABLE(CRC);(这个是否可以设定表格形式)
P:=P+1;(指向下个数据);
end;
CRC:=CRC Xor 0FF;
 
为什么总是有这么多的数制转换问题
2,10,16进制都是整数的一种表达形式
~~~~这是关键
他们只是在人看来是有差别的,对计算机没有什么,都是16进制
ugvanxk, 的方法是传出一个字符串,风马牛
 
function HexToInt(AHex: String): Integer;
var
I, R: Integer;
begin
R:= 0;
for I:=1 to Length(AHex)do
if (AHex >= 'A') and (AHex <= 'F') then
R:= R * 16 + (Byte(Char(AHex))-55)
else
R:= R * 16 + StrToInt(AHex);
Result:= R;
end;
 
procedure HextoArray(Source,Dest : Pointer;
Size : Integer);
begin
ZeroMemory(Dest,Size);
CopyMemory(Dest,Source,Size);
end;

HextoArray(Pchar(edit1.Text),@aa,16);
 
多人接受答案了。
 
后退
顶部