B Baggiopw Unregistered / Unconfirmed GUEST, unregistred user! 2007-02-02 #3 random函数得到十进制的随即数,你转换一下不就是16进制的了么?
A Alucard Unregistered / Unconfirmed GUEST, unregistred user! 2007-02-02 #4 苯方法,算出16位16进制数的10进制范围,然后随机,然后转换。。。。是不是有点太笨了 。。。。。
A Avalon Unregistered / Unconfirmed GUEST, unregistred user! 2007-02-02 #5 笨方法 procedure TForm1.Button1Click(Sender: TObject); var v_Temp: TStringList; i: Integer; Temp: String; begin v_Temp := TStringList.Create; v_Temp.Add('0'); v_Temp.Add('1'); v_Temp.Add('2'); v_Temp.Add('3'); v_Temp.Add('4'); v_Temp.Add('5'); v_Temp.Add('6'); v_Temp.Add('7'); v_Temp.Add('8'); v_Temp.Add('9'); v_Temp.Add('A'); v_Temp.Add('B'); v_Temp.Add('C'); v_Temp.Add('D'); v_Temp.Add('F'); Temp := ''; Randomize; for i := 1 to 4 do begin Temp := Temp + v_Temp[Random(15)]; end; ShowMessage(IntToStr(StrToInt64('$' + Temp))); //转换为10进制 v_Temp.Free; end;
笨方法 procedure TForm1.Button1Click(Sender: TObject); var v_Temp: TStringList; i: Integer; Temp: String; begin v_Temp := TStringList.Create; v_Temp.Add('0'); v_Temp.Add('1'); v_Temp.Add('2'); v_Temp.Add('3'); v_Temp.Add('4'); v_Temp.Add('5'); v_Temp.Add('6'); v_Temp.Add('7'); v_Temp.Add('8'); v_Temp.Add('9'); v_Temp.Add('A'); v_Temp.Add('B'); v_Temp.Add('C'); v_Temp.Add('D'); v_Temp.Add('F'); Temp := ''; Randomize; for i := 1 to 4 do begin Temp := Temp + v_Temp[Random(15)]; end; ShowMessage(IntToStr(StrToInt64('$' + Temp))); //转换为10进制 v_Temp.Free; end;
B BlueVoice Unregistered / Unconfirmed GUEST, unregistred user! 2007-02-02 #6 有毛病,请看: randomize; i:=random($ffff); showmessage(inttohex(i,4));
N nicai_wgl Unregistered / Unconfirmed GUEST, unregistred user! 2007-02-02 #7 Randomize; ShowMessage(IntToHex(Random(65535), 4));
D DJ6674 Unregistered / Unconfirmed GUEST, unregistred user! 2007-02-02 #8 所谓的16进制,10进制只是显示的方式而已。 你16位的16进制表达上就是一种错误。16位是指的2进制有16位。16进制只是显示上的问题而已。 就好想8,按照16位,那2进制就0000-0000-0000-1000,16进制就是0x0008,10进制就是8。 在计算机内表示都是用2进制的。所以只要生成随即数,转换就可以了。 记住:计算机永远只有2进制!!
所谓的16进制,10进制只是显示的方式而已。 你16位的16进制表达上就是一种错误。16位是指的2进制有16位。16进制只是显示上的问题而已。 就好想8,按照16位,那2进制就0000-0000-0000-1000,16进制就是0x0008,10进制就是8。 在计算机内表示都是用2进制的。所以只要生成随即数,转换就可以了。 记住:计算机永远只有2进制!!
C chaselife Unregistered / Unconfirmed GUEST, unregistred user! 2007-06-29 #9 简单,生成16次16位的单个字符,拼起来,再转换