Formatierung Hexadezimal
-
Weißt du denn, was du mit "0x%16X" angegeben hast?
Wen du führende Nullen haben willst, dann zusätzlich eine 0 angeben, also"0x%016X"
-
Th69 schrieb:
Weißt du denn, was du mit "0x%16X" angegeben hast?
Wen du führende Nullen haben willst, dann zusätzlich eine 0 angeben, also"0x%016X"
Nicht so wirklich, hab mir das auch nur aus dem Netz rausgesucht. Hab von der ganzen Formatierung leider nicht viel Ahnung und mache das zum ersten Mal. Wenn ich es so schreibe wie du es gepostet hast, dann hab ich aber viele Nullen nach dem x. Ich brauche es wie gesagt in folgender Form:
char 1 -> Hex 0x31
-
Da steht ja auch 16X, also mit 16 digits.
nimm mal "%#02X"
-
Danke, genau das was ich brauch. Ich glaub jetzt hab ichs auch verstanden wie es funktioniert
-
Am besten nimmst du gar kein
sprintf
, das is üble C/C++ Frickelei, viel zu kompliziert. Was genau soll das denn werden?
Hier der Quelltext, um jede Ziffer eines Strings in eine 6-stellige Hexadezimalzahl umzuwandeln, das sollte dir den richtigen Hinweis geben, wie man das in C++/VCL macht.#include <System.hpp> // für AnsiString #include <SysUtils.hpp> // für IntToHex #include <cctype> // für std::isdigit for( int i = 1; i <= Text.Length; ++i ) { if( std::isdigit( Text[i] ) ) { AnsiString Hex = "0x" + IntToHex( Text[i] - '0', 6 ); } }
-
Es geht einfach darum eine ID zu verschlüsseln und diese Verschlüsselungsfunktion brauch die ID im Hexadezimal-Format.
-
xXMartinoXx schrieb:
Es geht einfach darum eine ID zu verschlüsseln und diese Verschlüsselungsfunktion brauch die ID im Hexadezimal-Format.
Zeig mal diese Funktion. Ich vermute, du irrst dich.
-
unsigned char data[] = { 0x74, 0x65, 0x73, 0x74, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x31, 0x32, 0x33, 0x34 };
Das wird in einem Beispiel an die Verschlüsselungsfunktion übergeben. Ist doch Hexadezimal oder nicht? Und ich möchte die Funktion nutzen und muss mir deshalb eben solch ein array aufbauen.
-
xXMartinoXx schrieb:
Ist doch Hexadezimal oder nicht?
Ist es. Allerdings in deinem Quellcode. Daraus baut der Compiler Binärdaten.
xXMartinoXx schrieb:
Und ich möchte eben die Funktion nutzen und muss mir deshalb eben solch ein array aufbauen.
Nein, musst du nicht.
-
MFK schrieb:
xXMartinoXx schrieb:
Ist doch Hexadezimal oder nicht?
Ist es. Allerdings in deinem Quellcode. Daraus baut der Compiler Binärdaten.
xXMartinoXx schrieb:
Und ich möchte eben die Funktion nutzen und muss mir deshalb eben solch ein array aufbauen.
Nein, musst du nicht.
Ist mir schon aufgefallen beim Debuggen. Da steht dann ein string in "data". Wenn nicht so, wie denn dann?
-
xXMartinoXx schrieb:
Wenn nicht so, wie denn dann?
Als Byte-Array.
-
OK...
Und wie deklariert man sowas?
unsigned char array[SIZE];
Wäre das eins? So hab ich das nämlich versucht.
Und meine Zahlen müsste ich dann in ASCII-Form dort rein schieben? Hab ich das richtig verstanden?
-
In deinem String liegen die Daten ja schon binär vor, vermutlich musst du da gar nichts kopieren. Wie sieht denn deine Verschlüsselungsfunktion aus? Kannst du der einen Zeiger auf einen Speicherbereich und Länge übergeben?
-
DocShoe schrieb:
In deinem String liegen die Daten ja schon binär vor, vermutlich musst du da gar nichts kopieren. Wie sieht denn deine Verschlüsselungsfunktion aus? Kannst du der einen Zeiger auf einen Speicherbereich und Länge übergeben?
Ja, hatte da was missverstanden. Hab es mitlerweile gelöst. Und richtig, man muss der Funktion diese beiden Sachen mitgeben. Hab blos jetzt meinen code nicht zur Hand. Kann ich demnächst mal noch posten wenns interessiert.