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»

De binefa.com
Salta a la navegació Salta a la cerca
m
m
Línia 1: Línia 1:
= Transmissió d'un número real IEEE-754 =
+
= Transmissió d'un nombre real IEEE-754 =
== Representació d'un número real (tipus ''float'' en C de 4 bytes) en format IEEE-754 ==
+
== 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

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

How to convert decimal numbers from base ten to 32 bit single precision IEEE 754 binary floating point standard

Enllaç a un codificador / descodificador de nombres reals IEEE-754 (Codi a GitHub d'en Ray Toal)

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

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.