Z
zw84611
Unregistered / Unconfirmed
GUEST, unregistred user!
不用把0去掉,而且也没法去,机器怎么表示小于一个字节的数据类型呢?
如果“要将提取出的转化为常见的数据类型如 Integer”(要注意integer是有符号的),
你可以用类似下面的方法将4个字节转换成一个DWORD(和integer一样也是4个字节,但
无符号):
function BTDW(b: array of BYTE)WORD;
var dw,tdw: DWORD;
begin
// b[0]*(2^24)+b[1]*(2^16)+b[2]*(2^8)+b[3]
dw:=0;
tdw:=0;
tdw:=b[0]
dw:= dw+(tdw shl 24);
tdw:=b[1]
dw:=dw+(tdw shl 16);
tdw:=b[2]
dw:=dw+(tdw shl 8);
dw:=dw+b[3];
result := dw;
end;
如果“要将提取出的转化为常见的数据类型如 Integer”(要注意integer是有符号的),
你可以用类似下面的方法将4个字节转换成一个DWORD(和integer一样也是4个字节,但
无符号):
function BTDW(b: array of BYTE)WORD;
var dw,tdw: DWORD;
begin
// b[0]*(2^24)+b[1]*(2^16)+b[2]*(2^8)+b[3]
dw:=0;
tdw:=0;
tdw:=b[0]
dw:= dw+(tdw shl 24);
tdw:=b[1]
dw:=dw+(tdw shl 16);
tdw:=b[2]
dw:=dw+(tdw shl 8);
dw:=dw+b[3];
result := dw;
end;