highByte()
Description :
Extrait les 8 bits de poids fort (les plus significatifs) d’un entier de 16 bits (int, unsigned int, etc.) ou l’avant-dernier octet d’un type de données plus grand. Utile pour les protocoles de communication (comme I2C, SPI, série) où les données doivent être envoyées en octets, ou pour le fractionnement manuel de nombres.
Syntaxe :
Utilisez la fonction suivante pour extraire les 8 bits les plus significatifs d’une variable de 16 bits :
highByte(x)
Paramètres :
La fonction admet le paramètre suivant :
x : variable d’entrée à extraire. Type de données : tout type.
Retours :
La fonction renvoie l’octet extrait de la variable d’origine. Type de données : byte.
Exemple de code :
unsigned int x = 0xABCD; // Hexadecimal 43981 void setup() { Serial.begin(9600); byte high = highByte(x); // Extracts 0xAB (171 decimal) Serial.print("L'octet haut est: "); Serial.println(high, HEX); // Prints "AB" } void loop() { }
Note :
C’est ce que la fonction highByte() fait en coulisses :
#define highByte(w) ((uint8_t) (((w) >> 8) & 0xFF))
Source : https://docs.arduino.cc/language-reference/en/functions/bits-and-bytes/highByte/