fkey [0..15] of byte我把一个字符md5算出4cd8371d.....32位,想把它赋值给
fkey[0]:=4c
fkey[1]:=d8
..
fkey[15]=xx
请问怎么写不会出错,上面写的当然不行,我是为了表达,另外fkey[0] 是byte,里面到底存的什么

解决方案 »

  1.   

    还是数制转换的问题,原理不说了,只说方法
    源操作数是128位的(16*8=128)
    转换为16个256进制数(两个十六进制数占8位,表示0~255)
    可看作2进制->256进制的问题
    source:cardinal;  //128位数
    i:integer;
    ...
    for i:=0 to 15 do
    begin
    fkey[i]:=i mod 256;
    i:=i/256;             //短除法,也可以用i:=i shr 8
    end;
    结果是由低位向高位存储的.
    例如:
    源数1025  16进制0x0401
    结果:
    fkey[0] 0x01
    fkey[1] 0x04