将十六进制值存储为字符串

问题描述 投票:0回答:5

我正在开发一个 Arduino 项目,我想将十六进制值存储为字符串。

例如:十六进制是C697C63B

for (byte i = 0; i < bufferSize; i++) {
     Serial.print(buffer[i], HEX);
}

我想将字符串存储为

x = "C697C63B";

  String CardID = "";
  for (byte i = 0; i < bufferSize; i++) {
    CardID += (buffer[i],HEX);
    Serial.println(CardID);
  }

但是刺被存储为

CardID = 16161616

c++ arduino hex store
5个回答
2
投票

您应该使用

ostringstream

auto outstr = std::ostringstream{};
outstr << std::hex << 0xC697C63Bul;
auto myHexString = outstr.str();

0
投票

std::ostringstream + IO 操纵器hex 可能是你想要的。


0
投票

你可以使用c风格的sprintf:

char str[100];
sprintf(str, "%08x", HEX);

0
投票
#include <stdio.h>

int main(void) {
  int nHex = 0xC697C63B;
  char pHexStr[100];
  sprintf(pHexStr,"%x",nHex);
  fprintf(stdout, "%s", pHexStr);

  return 0;
}

0
投票

在 Arduino 编程语言中将十六进制转换为字符串非常简单。

正在做:

char StringValue[ ]=String(0xFF,HEX)
© www.soinside.com 2019 - 2024. All rights reserved.