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, wie x ist keine int?!
  • 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.

Schreibe einen Kommentar