Random 16 Stellige Hexadezimalzahlen Generieren



  • Hi,
    Ich möchte Random 16 Stellige Hexadezimalwerte generieren und in einer Listbox auszugeben.
    Ich habe bereits mehrere möglichkeiten wie z.B.:

    //---------------------------------------------------------------------------
    
    #include <vcl.h>
    #pragma hdrstop
    #include <limits.h>
    
    #include "Unit4.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm4 *Form4;
    //---------------------------------------------------------------------------
    __fastcall TForm4::TForm4(TComponent* Owner)
    	: TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    AnsiString string1, string2;
    int t1, t2;
    void __fastcall TForm4::B_GenerierenClick(TObject *Sender)
    {
    t1 = Random(INT_MAX);
    t2 = Random(INT_MAX);
    string1.printf("%x", t1);
    string2.printf("%x", t2);
    LB_Generiert->Items->Add(string1 + string2);
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm4::FormCreate(TObject *Sender)
    {
    Randomize();
    }
    //---------------------------------------------------------------------------
    

    ausprobiert.

    Aber diese Methode gibt nicht nur 16 stellige Hexadezimalzahlen aus 😕
    Vielleicht könnte mir jemand eine andere Methode erklären oder mir helfen diesen Code zu verbessen 🙂

    Ich hoffe ich habe mich klar genug ausgedrück und mir kann schnell geholfen werden^^

    mfg Zuluhutu



  • string1 = "0x" + IntToHex( t1, 16 );
    

    oder

    string1 = IntToHex( t1, 16 );
    

    grüssle 🙂



  • [gelöscht]



  • Hallo Smity,
    Ich habe den Code jetzt so abgeändert:

    AnsiString string1, string2, t3;
    int t1;
    void __fastcall TForm4::B_GenerierenClick(TObject *Sender)
    {
    t1 = Random(INT_MAX);
    string1 = IntToHex( t1, 16 );
    LB_Generiert->Items->Add(string1);
    }
    

    Aber das Problem ist es wird so ja nur die erste Hälfte an Bytes gefüllt und er gibt Zahlen aus wie z.B.: 00000000786C9072
    Doch er soll ja von Min 0000000000000001 bis zu Max wert FFFFFFFFFFFFFFFF ausgeben^^

    mfg Zuluhutu



  • 16 Stellig Hex und int ??? 😕



  • Ja in Int geht das nicht, aber wenn ich einen Variablen Typen wie
    unsigned long long nehme, funktioniert es nicht wenn hier:

    t1 = Random(INT_MAX);
    

    statt INT_MAX --> ULONG_LONG_MAX eingebe, trotz "include limits.h" 😕

    mfg Zuluhutu



  • LB_Generiert->Items->Add(IntToHex(RandomRange(0,INT_MAX),8)+IntToHex(RandomRange(0,INT_MAX),8));
    


  • Ich habe mir aus Smitty's und confuzius lösungen was zusammengebastelt und nun klappt es 🙂
    danke danke danke 😃

    mfg Zuluhutu


Anmelden zum Antworten