Zum Inhalt springen

String to Hex


Empfohlene Beiträge

Meinst du eine Funktion, die aus "abcd" "61626364" macht? Das könntest du z.B. so machen:

#include <string>
#include <sstream>
#include <iomanip>
using namespace std;

string hexdump( const string& s )
{
stringstream ss;
string::size_type len = s.length();
ss.flags( ios::hex );
for( string::size_type i=0; i<len; ++i ) {
ss << setw(2) << setfill('0') << static_cast<unsigned int>(s[i]);
}
return ss.str();
}[/CODE]

Link zu diesem Kommentar
Auf anderen Seiten teilen

"abcd" ist ja eigentlich schon ein hexadezimaler String (wodurch die Fragestellung unlogisch wäre) und der Wert wäre dann lt. Taschenrechner: 43981. Irgendwie ist die Fragestellung ohne Beispiel nicht ganz klar. Genausogut könnte nämlich als Ergebnis wieder ein String rauskommen (sollte ja als Hex dargestellt sein glaub ich): oder das ganze als Zahlenarray. Wenn man die Frage beantworten will muß man das Ziel schon genauer erläutern. Soll das Ziel ein int, long, bcd oder String sein und wie soll der Eingangsstring verwendet werden, als Ganzzahl oder Hex-String und wie der Ausgangsstring: als 16/32/64-Bit Hex (die Wertigkeit steigt ja mit jeder Stelle) oder jedes Zeichen einzeln als Nibble mit voranstehendem "0x"???

Ich vermute eher, daß die Frage anders gemeint war: Der Eingangsstring soll eine normale Zahl sein und dann als "abcd" als String ausgegeben werden. Ein Beispiel (Input->Output und welches Format) wäre sicherlich hilfreicher um die Frage richtig beantworten zu können.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das Gleiche hat etwas verständlicher (weil Beispiel) hier ein altes Forums-Mitglied gefragt. Evtl. hast Du das so gemeint. Du willst am liebsten alles in einer Zeile machen? Bitte:

char *string="1F", buffer[20]; // Buffer muß an´s Ergebnis angepaßt sein

_ltoa( strtoul( string, &string+sizeof(string), 16), buffer, 10 ); // hier ist die Zeile

[code]

Sollte die Stringgröße vor dem Compilen absolut unbekannt sein, eben wie im Link mit einem Stoppstring arbeiten. Ein ändern der Radixe (heißt das so im Plural?) erlaubt es die Zahlensysteme ineinander zu konvertieren (also binär, oktal, hexadezimal, dezimal oder sogar Eigene Formate, die keiner versteht ... schreib mal anstatt 10 hinten 6 und Du rechnest alles ins Sexadezimalsystem um =8-)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...