如题

解决方案 »

  1.   

    longword是FFFFFFFF有八个了

    TmpStr:=IntToHEX(Rand($FFFFFFFF),8)+IntToHEX(Rand($FFFFFFFF),8)就可以了
      

  2.   

    什么意思说明白点可以吗?
    本人对DELPHI不是怎么熟悉
      

  3.   

    呵~~ 
    从楼主的题目看,楼主要得到的,是一个“数”,而非字符串。需要说明的是:同一个数,它有2进制、8进制、10进制、16进制....等等许多的表现形式,但无论什么形式,它还是那个数。以下是我的回答,不管楼主满意与否。var
      R : Word;//Word是无符号双字节数,16位
      I : Byte;
      S : String;
      P : ^Byte;
    begin
      R := Random(65536);
      { 现在R就已经是你要的那个“16位的16进制数”了,你说它是10进制也行,2进制也行 }
      { 应该说,本问题到此为止已回答完毕,但为了使楼主理解更深,也担心楼主的本意就是要16进制形式的字符串,所以我写了以下的代码 }  { 一、如果你想看一下这个数字的十六进制表现形式 }
      ShowMessage(Format('%.4x',[R]));//这就是其16进制表现形式  { 二、如果你想看一下这个数字的2进制表现形式 }
      S := '';
      For I := 15 downto 0 do
          S := S + IntToStr((R shr I) and 1);
      ShowMessage(S);            //这就是它的2进制表现形式,共16位  { 三、但是,在内存中,它的两个字节并不是按上面的顺序排列的 }
      S := '';
      P := @R;
      For I := 0 to SizeOf(R)-1 do
          begin
          S := S + Format('%.2x',[P^]);
          Inc(P);
          end;
      ShowMessage(S); //这就是它的两个字节在内存中的排列顺序
    end;