Forum: Compiler & IDEs Binäre Zahlen in Ascii Array in int wandeln


von Tim (Gast)


Lesenswert?

Hallo.

Irgendwie stehe ich gerade auf dem Schauch.
Habe ein Array mit x Elementen welche mit Nummer und Einser gefüllt 
sind.
Zusammen ergeben die eine integer Zahl.
Irgendwie verstehe ich gerade nicht wie ich das Ganze händlen sollte.

Könnte mir hier jemand kurz nen Tip geben?

Danke!

von Tim (Gast)


Lesenswert?

Es ist schon spät:
Schlauch

Nuller und Einser

von g457 (Gast)


Lesenswert?

> Irgendwie verstehe ich gerade nicht wie ich das Ganze händlen sollte.

Das kommt ein klitzekleines bisschen darauf an was du damit machen 
willst.. Umkopieren? memcpy regelt. Nullen? memset regelt. Oder doch was 
anderes?

von Fabian O. (xfr)


Lesenswert?

In etwa so?
1
char eingabe[32];
2
uint32_t ausgabe = 0;
3
4
for (int i = 0; i < 32; i++)
5
{
6
  ausgabe <<= 1;
7
  if (eingabe[i] == '1')
8
  {
9
    ausgabe |= 1;
10
  }
11
}

von Tim (Gast)


Lesenswert?

Hmm, evtl etwas blöd erklärt...

uint8_t incoming_stream[4] = {'1','0','1','1'};
jetzt würde ich gerne ein uint8_t mit der Zahl 11 heraus bekommen.

von Manuel S. (steinerhippo)


Lesenswert?

Dann passt das so wie Fabian geschrieben hat, nur eben, dass die for 
Schleife 8 Durchgänge hat.

von Tim (Gast)


Lesenswert?

Ahja - super.
Danke Euch!

Die Vorgehensweise muß ich mir morgen mal verinnerlichen.
Code funktioniert schon.

Gute Nacht!

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Tim schrieb:
> uint8_t incoming_stream[4] = {'1','0','1','1'};

Falls es auch nullterminiert sein darf:
1
char incoming_stream[] = "1011";
2
3
...
4
int i = (int)strtoul(incoming_stream, 0, 2);

von Tim (Gast)


Lesenswert?

Oh, sowas gibts im gcc...
Cool, danke für den Tip!

Gleich später mal mit spielen.

von Bernd (Gast)


Lesenswert?

Tim schrieb:
> Oh, sowas gibts im gcc...

nicht im gcc, sondern in einer Library

von Karl H. (kbuchegg)


Lesenswert?

... beschrieben in jedem noch so grindigem C-Buch

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.