Ich habe einen String mit 0 und 1 gefüllt und möchte eine Ganzzahl daraus machen:
String bitString = "";
int Number;
int tmp;
bitString = "";
for (i=1;i<=10;i++)
{
tmp= analogRead (A0);
bitString += tmp % 2;
delay(50);
}
// now bitString contains for example "10100110"
// Number = bitstring to int <-------------
// In the end I want that the variable Number contains the integer 166
arduino-uno
programming
string
kimliv
quelle
quelle
Antworten:
Wenn Sie nur die Zeichenfolge zum Drucken benötigen, können Sie den Wert in einer Ganzzahl speichern und dann die Funktion Serial.print (Nummer, BIN) verwenden, um die Ausgabe als Binärwert zu formatieren. Das Anhängen von Ganzzahlen an Zeichenfolgen ist sowohl hinsichtlich der Leistung als auch der Speichernutzung ein potenziell kostspieliger Vorgang.
quelle
Auschecken
strtoul()
Es sollte ungefähr so funktionieren:
unsigned long result = strtoul(bitstring.c_str(), NULL, 2);
Jetzt haben Sie eine lange Variable, die bei Bedarf in ein int konvertiert werden kann.
quelle