据我所知,你想要这样的东西:
char strConv(String str) { if(str.length() > 2) return -1; // return something which makes sense to you for "invalid" return static_cast<char>(strtol(str.c_str(), NULL, 16)); } String myString(26, HEX); // creates the string "1A" for you void setup() { Serial.begin(9600); } void loop() { Serial.println("String: \""+myString+'"'); char val = strConv(myString); //gives you the 26 again Serial.print("int: "); Serial.println(static_cast<int>(val)); delay(1000); }
这提示我以下内容:
String: "1a" int: 26 String: "1a" int: 26 ...