/*
// Conversion float to hex *** can not
double voltage = 1.2;
//float Xe = 3.3;
void setup(){
Serial.begin(9600);
serialFloatPrint(voltage);
}
void loop() {
/*
serialFloatPrint(voltage);
//serialFloatPrint(Xe);
Serial.println();
delay(200);
*/
/*
}
// function to print out floats in HEX XXXXXXXXXXXXXXXX
void serialFloatPrint(float f) {
byte * b = (byte *) & f; ///**********
Serial.print("#"); /////#*******************
for(int i=0; i<4; i++) {
byte b1 = (b[i] >> 4) & 0x0f;
byte b2 = (b[i] & 0x0f);
char c1 = (b1 < 10) ? ('0' + b1) : 'A' + b1 - 10;
char c2 = (b2 < 10) ? ('0' + b2) : 'A' + b2 - 10;
Serial.print(c1);
Serial.print(c2);
}
}
*/
///////////////////////////////////////////////////////////////
// Conversion float to hex ***ok*** 4-byte = 0x00000000
void setup() {
Serial.begin(9600);
float value = 5.0; ///*** 3.14=0x4048F5C3
byte byteArray[4];
floatToBytes(value, byteArray);
Serial.print("Float value: ");
Serial.println(value);
Serial.print("Hexadecimal value: 0x");
for (int i = 3; i >= 0; i--) {
if (byteArray[i] < 0x10) {
Serial.print("0");
}
Serial.print(byteArray[i], HEX);
}
Serial.println();
}
void loop() {
// Nothing here
}
void floatToBytes(float value, byte* byteArray) {
union {
float f;
byte b[4];
} floatUnion;
floatUnion.f = value;
for (int i = 0; i < 4; i++) {
byteArray[i] = floatUnion.b[i];
}
}
////////////////////////////////////////////////////////////////
//*** https://gregstoll.com/~gregstoll/floattohex/