0

我想在Arduino的以下站点中将浮点值转换为IEEE754单精度32位十六进制值。 https://www.binaryconvert.com/result_float.html?decimal=051046049048

float f = 3.10;
byte hex[4] = {0};

byte FloatToHex(float f){
   .......
}

如何创建这样的功能?如果格式不同也没关系。

4

1 回答 1

1

f已经以二进制形式存储。reinterpret_cast通常是代码异味问题,但其有效用途是查看变量的字节表示。


void FloatToHex(float f, byte* hex){
  byte* f_byte = reinterpret_cast<byte*>(&f);
  memcpy(hex, f_byte, 4);
}

void setup() {
  float f = 3.10;
  byte hex[4] = {0};

  FloatToHex(f, hex);
  //... do stuff with hex now...
}

void loop() {
  
}
于 2020-07-23T11:54:32.873 回答