Arduino: Konvertieren einer Zeichenfolge hex "#FFFFFF" in 3 int
Ich bin komplett neu in C/C++, und ich bin versucht, herauszufinden, wie konvertiert ein String-argument, das wäre in der form einer html-style-rgb-hex, wie z.B. "#ffffff", und wiederum, dass in 3 Integer vars
Ich bin nicht wirklich sicher, wo zu sein.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Alles, was Sie brauchen zu tun ist, konvertieren Sie die string zu Integer und dann teilen Sie diese in drei separate r, g, b-Werte.
Haben möchten Sie vielleicht einen Blick auf diese Frage als gut.
Bearbeiten (Dank an James Kommentare):
Für einige Computer (z.B. Arduino (Uno)), int mit 16 bit statt 32. Wenn rote Werte sinken für Sie ist, verwenden Sie eine lange statt.
Bearbeiten (eine noch sicherere version, verwenden Sie
strtoll
stattstrtol
):const char*
durch die folgendenstring v1 = "#FF3Fa0"; const char* v2 = v1.c_str()
. Und auch dieses&hexstring[1]
einfach bedeutet, dass du die Adresse vonhexstring[1]
ist, spielt es keine Rolle, ob esstring
oderconst char*
. Ich habe geändert, die Antwort.#include <string>
Zuerst müssen Sie analysieren Ihren Wert. Sie können tun, dass auf diese Weise:
Dann konvertieren Sie jede Zeichenfolge in das entsprechende ganze Zahl. Sie können lernen, wie zu tun, dass aus diese Antwort.