Diferència entre revisions de la pàgina «Transmissió d'un número real de tipus IEEE-754 (4 bytes) i llur recuperació a NodeRED»
Salta a la navegació
Salta a la cerca
m |
m |
||
Línia 1: | Línia 1: | ||
− | = Transmissió d'un | + | = Transmissió d'un nombre real IEEE-754 = |
− | == Representació d'un | + | == Representació d'un nombre real (tipus ''float'' en C de 4 bytes) en format IEEE-754 == |
[https://www.geeksforgeeks.org/ieee-standard-754-floating-point-numbers/ IEEE Standard 754 Floating Point Numbers] | [https://www.geeksforgeeks.org/ieee-standard-754-floating-point-numbers/ IEEE Standard 754 Floating Point Numbers] | ||
Línia 8: | Línia 8: | ||
[[Image:Ieee754.png|center|Exemple de codificació / descodificació IEEE-754]] | [[Image:Ieee754.png|center|Exemple de codificació / descodificació IEEE-754]] | ||
+ | == Exemple de conversió d'un nombre real a 4 bytes == | ||
+ | Codi en C de l'IDE d'Arduino: | ||
+ | #define N_DATA_BYTES 4 | ||
+ | |||
+ | union uFloat{ | ||
+ | float f; | ||
+ | unsigned char uc[4]; | ||
+ | }; | ||
+ | |||
+ | static uint8_t mydata[N_DATA_BYTES]; | ||
+ | |||
+ | void vVisualitzacioFloatEnBytes(float fNum){ | ||
+ | union uFloat ufA; | ||
+ | int i,k; | ||
+ | |||
+ | ufA.f = fNum; | ||
+ | Serial.print("Vector de bytes: "); | ||
+ | for(i = N_DATA_BYTES - 1 , k = 0 ; i >= 0 ; i-- , k++ ){ | ||
+ | mydata[k] = ufA.uc[i]; | ||
+ | Serial.print(mydata[k],DEC);Serial.print(" "); | ||
+ | } | ||
+ | Serial.println(); | ||
+ | } | ||
= Recuperació d'un número real a NodeRED = | = Recuperació d'un número real a NodeRED = | ||
Node [https://flows.nodered.org/node/node-red-contrib-float node-red-contrib-float] de Node Red per a convertir números reals en format IEEE-754 apartir d'una cadena de zeros i uns. | Node [https://flows.nodered.org/node/node-red-contrib-float node-red-contrib-float] de Node Red per a convertir números reals en format IEEE-754 apartir d'una cadena de zeros i uns. |
Revisió del 17:46, 6 feb 2022
Contingut
Transmissió d'un nombre real IEEE-754
Representació d'un nombre real (tipus float en C de 4 bytes) en format IEEE-754
IEEE Standard 754 Floating Point Numbers
Enllaç a un codificador / descodificador de nombres reals IEEE-754 (Codi a GitHub d'en Ray Toal)
Exemple de conversió d'un nombre real a 4 bytes
Codi en C de l'IDE d'Arduino:
#define N_DATA_BYTES 4 union uFloat{ float f; unsigned char uc[4]; };
static uint8_t mydata[N_DATA_BYTES]; void vVisualitzacioFloatEnBytes(float fNum){ union uFloat ufA; int i,k; ufA.f = fNum; Serial.print("Vector de bytes: "); for(i = N_DATA_BYTES - 1 , k = 0 ; i >= 0 ; i-- , k++ ){ mydata[k] = ufA.uc[i]; Serial.print(mydata[k],DEC);Serial.print(" "); } Serial.println(); }
Recuperació d'un número real a NodeRED
Node node-red-contrib-float de Node Red per a convertir números reals en format IEEE-754 apartir d'una cadena de zeros i uns.