hex Zahl in ASCII umwandeln

Bastih84

Mitglied
Ich habe folgendes Problem:

Ich habe einen DVB transportstrom binär eingelesen, jetzt sind darin aber auch ASCII Zeichen enthalten, welche er mir als hex-Zahlen darstellt, jetzt wollte ich wissen, wie ich hex-Zahlen wieder in ASCII Zeichen umwandle, oder nicht möglich
 
Nicht so richtig, ich suche einen Befehl, ein Algorithmus, mit dem ich eine Hex-Zahl als ASCII Zeichen Ausgeben kann, ich kann zwar 48 if Abfragen machen, aber da gibt es bestimmt einen einfachen Befehl der mir das wandelt, oder Die Tabelle ist mir im Laufe meines Studiums ja schon öfter über den Weg gelaufen, nur fehlt mir gerade die zündende Idee die Geschichte umzuwandeln

:confused:
 
Da wäre meine erste Idee ein dicker, langer Array, in dem jeweils die Ascii Werte stehen.

Eine andere, weniger tippintensive wäre eine fertige Funktion oder Bibliothek..

..Musst mal Google fragen.. !?

Hast Du schon in MSDN nachgesehen?

MSDN hat eine Funktion aus <ctype.h> gefunden:
int _toascii

Code:
  int __toascii(    int c  );
 
So kannst du eine Hexadezimale Zahl innen string umwandeln:

Code:
#include <iostream>

using namespace std;

void hexnum_to_hexstring(int hexnumber, string& result){
        int pot = 1;
        for(;pot <= hexnumber; pot *= 16);
        while(hexnumber > 0){
                pot = pot / 16;
                int res = hexnumber / pot;
                hexnumber = hexnumber - (pot * res);
                res = (res > 9)?  res + 55: res + 48;
                result += res;
        }
}
int main(){
        string erg;
        int hexa = 0xabc;
        hexnum_to_hexstring(hexa, erg);
        cout << erg << endl;
}

Wenns dir nur um die ausgabe geht:
Code:
#include <iostream>
using namespace std;

int main(){
        cout << hex << 0xabc << endl;
}

Gruß

RedWing
 
Das ist alles nicht so dass, was ich eigentlich suche, also ich habe z.B. einen Wert 0x1b und will diesen als Zeihen ausgeben, z.b. A (nur als Bsp.). D.h. ich suche einen Befehl oder ein Programm, das mit einen hex Wert 0x12 als ASCII/Buchstaben ausgibt, meine hex Werte werden Bytweise verarbeitet, meine folge von hex-Werten sollte eichentlich ein bestimmtes Wort ergeben, also quasi gerade andersrum arbeiten, als das Programm was ihr mir angeboten habt

Danke
 
Das sollte doch dann mit einer simplen Formatierung, wie z.B. in printf oder scanf vorhanden, funktionieren:

Code:
char c = 0x41; // Buchstabe 'A'
printf("%c", c);

oder

Code:
#include <iostream>
using namespace std;

char c = 0x41; // Buchstabe 'A'
cout << c << endl;

Wo willst du die Werte eigentlich ausgeben/anzeigen, Konsole, Fenster, Datei ... ?
 
Das hat mir jetzt weitergeholfen, wollte in der Konsole nur ein paar Zahlen in ASCII Zeichen umwandeln, nur zur Ausgabe in der Konsole
 

Neue Beiträge

Zurück