convert float to hex string
Revision 0:8638868343e7, committed 2016-12-15
- Comitter:
- agrosmart
- Date:
- Thu Dec 15 11:57:02 2016 +0000
- Commit message:
- library float2hex
Changed in this revision
floathex.h | Show annotated file Show diff for this revision Revisions of this file |
diff -r 000000000000 -r 8638868343e7 floathex.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/floathex.h Thu Dec 15 11:57:02 2016 +0000 @@ -0,0 +1,67 @@ +#include <string> + +string float4Hex(float value) //Deja 4 Espacios para tener en cuenta el signo, para las temperaturas +{ + int signo=0; // para las temperaturas + int ent1 =0; + int dec1=0; + char value2[5] = "0"; + + if(value<0) { + signo = 1; // 1 es negativo, 0 es positivo + value = value * -1; + } else { + signo = 0; + } + ent1 = value; + dec1 = (value - ent1)*16; //solo queda un decimal. para que queden dos decimales hay que multiplicar decimal por 10 + sprintf(value2, "%.1X%.2X%.1X", signo, ent1,dec1); //1 de signo, 2 de entero, 1 de decimal + value=0; + return value2; +} +string float3dHex(float value) //Deja 3 espacios, para 2 enteros con 1 decimal +{ + int ent1 =0; + int dec1=0; + + char value2[5] = "0"; + + ent1 = value; + dec1 = (value - ent1)*16; + sprintf(value2, "%.2X%.1X", ent1,dec1); //2 de entero, 1 de decimal + value=0; + return value2; +} +string float2dHex(float value) //Deja 2 espacios, para enteros con 1 decimal +{ + int ent1 =0; + int dec1=0; + + char value2[5] = "0"; + + ent1 = value; + dec1 = (value - ent1)*16; + sprintf(value2, "%.1X%.1X", ent1,dec1); // 1 de entero, 1 de decimal + value=0; + return value2; +} +string float3Hex(float value) //Deja 3 espacios, para 3 enteros +{ + int ent1 =0; + char value2[5] = "0"; + + ent1 = value; + sprintf(value2, "%.3X", ent1); //3 de entero + value=0; + return value2; +} +string float2Hex(float value) //Deja 2 espacios, para 2 enteros +{ + int ent1 =0; + char value2[5] = "0"; + + ent1 = value; + sprintf(value2, "%.2X", ent1); //2 de entero + value=0; + return value2; +} \ No newline at end of file