Arduino hexadezimal-string in unsigned long int Umwandlung
Ich versuche zu konvertieren hex-decimal-string-Wert in einen unsigned long int.
Beispiel:
String s="0x4d14" --> unsigned long int B = 0x4D14
OK, ich löste das Vorherige problem,
Habe ich ein anderes problem:
Ich hexcodes Lesen aus dem seriellen monitor wie diesen:
char c[10];
char c[i]=serial.read();
String s=c[i];
i++;
if (i==10)
s="";
Aber jetzt kann ich das nicht:
const char* string = s;
Verwenden Sie die Funktion strtoul, also, was soll ich tun?
Was auch immer die Logik von meinem code wollte ich nicht posten, mein vollständiger code, aber mein problem ist jetzt string
zu const char*
Konvertierung.
long int A[]={0,x,1,2,3}
nicht Recht, wiex
ist keineint
?!- ich lese hexadezimale Werte aus der seriellen Schnittstelle und ich will es konvertieren zu unsigned long int. zum Beispiel unsigned long int a[i]=serial.Lesen(); wo dieser eingehende Wert war, soll hexadezimal
- ich habe bearbeitet Sie meine Frage....kennen Sie die Antwort?
- Schau mal hier nongnu.org/avr-libc/user-manual/...
- dies funktioniert nicht für die hex-Werte
- Sicher, es tut. Pass 16 als drittes argument.
- ich will umwandeln String s="0xffff", in unsigned long int B=0xffff in der gleichen hexadezimaler form ....nicht, dass ich möchte, B=65535
- Zahlen nicht haben, hexadezimale Formen. Es ist nur, wenn Sie konvertieren eine Zahl in eine text-Darstellung, die Sie bekommen, hexadezimal, dezimal, oktal, oder was auch immer. 65535 und 0xffff repräsentieren den gleichen Wert, und es ist der Wert, der gespeichert wird in ein unsigned long, nicht den text.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies funktioniert für mich
Update:
Haben Sie einen Blick auf einige C-Sprache Lernprogramm
int
ist ein Zahl, es ist weder dezimal hex oder was auch immer. Wie es scheint, will man nun zum konvertieren einer Zahl in einen string wieder, und die Darstellung dieser Zahl in hex.