Forum: Mikrocontroller und Digitale Elektronik binär in string umwandeln mit Stellenanzahl


von Timo (Gast)


Lesenswert?

Hallo,

ich habe hier die Artikel und auch fie Forenbeiträge mehrfach 
durchsucht. Leider finde ich keine brauchbare Lösung für folgendes doch 
einfaches Problem. So hoffe ich..

Ich möchte eine 8Bit Zahl binär an einem LCD ausgeben.
bisher habe ich dazu auch die Funktion
1
itoa()
 verwendet.
Leider schneidet diese Funktion die führenden Nullen ab.

Ich möchte das in C lösen.
Welche Möglichkeiten habe ich?

Gruß Timo

von ralf (Gast)


Lesenswert?

Hallo,
1
sprintf("%01x%01x%01x%01x%01x%01x%01x%01x", val&0x80>>7,val&0x40>>6,val&0x20>>5,val&0x10>>4, val&0x08>>3,val&0x04>>2,val&0x02>>1,val&0x01);

könnte gehen...

ralf

von ralf (Gast)


Lesenswert?

bei sprintf fehlt natürlich noch was das hin soll :-)

von Timo (Gast)


Lesenswert?

@ ralf:

meinst du dass da noch des "val' übergeben werden muss?

also als Funktion:
1
uint8_t bin2str(val) {
2
sprintf("%01x%01x%01x%01x%01x%01x%01x%01x", val&0x80>>7,val&0x40>>6,val&0x20>>5,val&0x10>>4, val&0x08>>3,val&0x04>>2,val&0x02>>1,val&0x01);
3
}

Timo

von gast (Gast)


Lesenswert?

printf("Binaer: ");
for(i=0;i<8;i++)
{
bin[i]=((wert>>i)&1);
}
for(i=0;i<8;i++)
{
printf("%d",bin[7-i]);
}
printf("\n");

von gast (Gast)


Lesenswert?

kannst natürlich auch anders herum machen und gleich ausgeben

for(i=7;i>=0;--i) {
printf("%d",((wert>>i)&1));

von gast (Gast)


Lesenswert?

reicht dir das jetzt?
funktionierts?
habs ja selber nicht ausprobiert

von Falk B. (falk)


Lesenswert?

@ Timo (Gast)

>ich habe hier die Artikel und auch fie Forenbeiträge mehrfach
>durchsucht. Leider finde ich keine brauchbare Lösung für folgendes doch
>einfaches Problem.

Dann hast du nicht richig gesucht.

>Ich möchte eine 8Bit Zahl binär an einem LCD ausgeben.

Festkommaarithmetik

MfG
Falk

von Timo (Gast)


Lesenswert?

vielen Dank Falk,

hab mir jetzt meine eigene Funktion gebaut :)

Gruß Timo

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.