C Binär -> Ascii

rydaN

Cadet 1st Year
Registriert
Okt. 2009
Beiträge
14
Hey,

ich habe eine Frage zu C.
Ich suche eine Funktion mit der ich eine 1Byte (oder 8Bit) große Binärzahl in ein Asciizeichen
umwandeln kann.

also:
0100 0001 --> "A"

das dürfte doch eigentlich nicht so schwer sein..

ich finde leider nur keinen Ansatz und google spuckt bis jetz auch nicht das richtige aus...

es wäre schön wenn einer eine Lösung für das Problem kennt und mir einen Ansatz dazu geben kann

Danke schonmal
MfG rydaN
 
Ganz einfach:

Code:
char ascii_sym = 65;
printf("%c", ascii_sym);

Ausgabe -> A

Edit:

Wenn die Eingabe binär vorliegt, müsstest du wohl erstmal nach dezimal umwandeln. Je nach Erfahrung auch sehr simpel.
 
Zuletzt bearbeitet:
Danke das sieht doch schon super aus!

ich werde da mal nen bissel basteln

Danke euch
 
Dank der äußerst schwammig formulierten Frage war das ja mal wieder heiteres Rätselraten.

In Zukunft solltest Du bei solchen Fragestellungen auch angeben, in welchem Format die Zahlen vorliegen.

Liegen sie schon als Dezimalzahl vor?
Liegen sie als String vor?
 
Sry

Nein ich will mit C ein Programm schreiben in den ich ein String(Binär) also z.B. 0100 0001 eingeben kann und er mir eine Datei (.txt) mit den Buchstaben erzeugt (in dem Fall hier "A")

da war eigentlich schon alles...

soll nur eine Übung sein um C bis zur Abschlussprüfung nicht ganz zu vergessen^^

MfG rydaN
 
Dann bringt Dich printf("%c"...) nicht weiter, sondern nur strtol(..., 2)

Es sei denn, Du willst das, was strtol macht, selbst implementieren.
 
Falls du es selbst implementieren möchtest, versuch dies:
Code:
int binaryStringToInteger(char* a)
{
    int r = 0;
    for(int i = 0; a[i]; i++)
    {
        if(a[i] == '0' || a[i] == '1')
        {
            r <<= 1;
            r += (int)a[i]-48;
        }
    }
    return r;
}
Sollte funktionen.

Das ganze läßt sich dann wie gewohnt verwenden. ;>
 
Zurück
Oben