我试图将读数返回给我的数字转换为十六进制。我没有找到任何参考。
这是代码:
byte dummy = 0x00;
byte readCard[4];
String datoWifi = "";
for (int i = 0; i < 4; i++) { //
readCard[i] = mfrc522.uid.uidByte[i];
//dummy = (readCard[i], HEX); //esto no funciona
datoWifi += (String) mfrc522.uid.uidByte[i];
Serial.print(readCard[i], HEX);//de esta manera se imprime correctamente
}
使用Serial.print(readCard[i], HEX);
十六进制值可以完美打印,但是我需要能够构造datoWifi
它是一个类型变量String
,而不是返回的数字,而是已经完成的转换。
我希望已经为它创建了一些函数,并且解决方案不是从头开始创建函数,因为这是我想要避免的。
您需要的是使用正确的构造函数:
String
对于这种类型的转换,您有库
iomanip
(IO MANIPulation)。发生的事情是这个库只适用于流。所以解决方案是使用stringstream
然后将结果转储到您的变量中string
:如果您需要
0x
十六进制的典型数字,则必须手动添加: