首页
社区
课程
招聘
[旧帖] [求助]怎么将DELPHI integer转字节组数,急急。 0.00雪花
发表于: 2010-2-26 16:58 1963

[旧帖] [求助]怎么将DELPHI integer转字节组数,急急。 0.00雪花

2010-2-26 16:58
1963
我用以下代码把字节数组转换成整型 mcount := buffer[3]*256*256*256+buffer[2]*256*256+buffer[1]*256+buffer[0];
结果是把字节数组buffer{100.0.0.0}转抱成整型100,请问我怎么将100 转换成对应的字节数组,请各高赐教

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 6
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
procedure Tran(I: Integer; ByteArray: array 4 of Byte);
var
   M: Integer;
begin
    M := I mod 256;
    ByteArray[0] := I - M;
    I  := M;
    M := I mod 256;
    ByteArray[1] := I - M;
    I  := M;
    M := I mod 256;
    ByteArray[2] := I - M;
    ByteArray[3] := I div 256;
end;
2010-2-26 19:40
0
雪    币: 7
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
终于有人回答了。我可是解决了半天没成功,非常谢谢.我马上试试
2010-2-26 19:53
0
雪    币: 7
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
我试了。好像不行。出得来的字节数组全都是0{0,0,0,0}
2010-2-26 20:10
0
雪    币: 6
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
我没Delphi,对不起,改一下吧
procedure Tran(I: Integer; ByteArray: array 4 of Byte);
var
   M: Integer;
begin
    M := I mod 256;
    ByteArray[0] := Byte(I - M);
    I  := M;
    M := I mod 256;
    ByteArray[1] := Byte(I - M);
    I  := M;
    M := I mod 256;
    ByteArray[2] :=  Byte(I - M);
    ByteArray[3] := Byte(I div 256);
end;
2010-2-26 20:52
0
雪    币: 6
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
procedure Tran(I: Integer; ByteArray: array 4 of Byte);
应为procedure Tran(I: Integer; Var ByteArray: array 4 of Byte);
2010-2-26 20:55
0
雪    币: 7
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
没关系的。再试试。谢谢了
2010-2-26 22:31
0
雪    币: 6
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
我昨晚小孩要收菜,抢机子。我出错了。我再补一下。没Dephi环境啊!
2010-2-27 10:36
0
雪    币: 6
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
1、
procedure Tran(I: Integer; ByteArray: array 4 of Byte);
var
   M: Integer;
begin
    M := I mod 256;
    ByteArray[0] := Byte(I - M * 256);
    I  := M;
    M := I mod 256;
    ByteArray[1] := Byte(I - M* 256);
    I  := M;
    M := I mod 256;
    ByteArray[2] :=  Byte(I - M* 256);
    ByteArray[3] := Byte(I div 256);
end;
2、
这个简单些:

type
    TIntByte = packed record
          case Integer of
              0:  (I: Integer);
              1:  (B: array 4 of Byte);
       end;

procedure Tran(I: Integer; ByteArray: array 4 of Byte);
var
   M: TIntByte;
begin
   M.I := I;
   ByteArray := M.B;

end;
2010-2-27 10:43
0
雪    币: 414
活跃值: (531)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
10
[QUOTE=delphinet;767195]我用以下代码把字节数组转换成整型 mcount := buffer[3]*256*256*256+buffer[2]*256*256+buffer[1]*256+buffer[0];
结果是把字节数组buffer{100.0.0.0}转抱成整型100,请问我怎么将100 转换成对应的字节数组,请各...[/QUOTE]

你的问题问的比较笼筒,我没有弄明白。
你是想把一个字节型的数组变成一个整数,还是变成整数数组。

Sour  :array[0..len] of byte;
dest  :array [0..Blen] of integer;

code:
  i:=0;
//这里I没有检查是不是和len正好对位,即4的倍数,如果不是,需要处理

  while i<=(len div 4) do
begin
  dest[i]:= sour[i*4+3] shL 24 +sour[i*4+2] shL 16 +sour[i*4+1] shL 8 +sour[i*4] ;
  inc(i);
end;

用此变成整数即可。
sour[i*4+3] shL 24 +sour[i*4+2] shL 16 +sour[i*4+1] shL 8 +sour[i*4] ;
2010-2-27 23:40
0
游客
登录 | 注册 方可回帖
返回
//