Diferencia entre revisiones de «highByte()»
De ArduWiki
(→Ejemplo) |
(→Ejemplo 1) |
||
Línea 23: | Línea 23: | ||
== Ejemplo 1 == | == Ejemplo 1 == | ||
+ | Descomponer en [[byte]]s y reconstruir un [[int]]. | ||
+ | |||
<syntaxhighlight lang="c++"> | <syntaxhighlight lang="c++"> | ||
− | int | + | void setup(){ |
− | byte val1 = highByte( | + | Serial.begin(9600); |
− | byte val2 = lowByte( | + | //Descomponer |
− | int | + | int dat1 = 12345; |
− | + | Serial.prinln(dat1, HEX); //ox3039 | |
− | + | byte val1 = highByte(dat1); //0x30 (MSB) | |
− | + | byte val2 = lowByte(dat1); //0x39 (LSB) | |
+ | Serial.println("-------"); | ||
+ | //Reconstruir | ||
+ | int dat2; | ||
+ | dat2 = val1; //Tomamos MSB | ||
+ | dat2 <<= 8; //Desplazamos 8 bits a la izquierda | ||
+ | dat2 |= val2; //Añadimos LSB | ||
+ | Serial.prinln(dat2, HEX); //0x3039 | ||
+ | } | ||
+ | void loop(){ | ||
+ | //Nada | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Revisión del 17:53 5 may 2019
Contenido
Descripción
Extrae el byte de orden superior (MSB) en int o el segundo byte más bajo de un tipo de datos más grande como long.
Sintaxis
highByte(variable);
Parámetros
- variable
- variable a evaluar que deberá ser int, long, float, unsigned int o unsigned long
Retornos
Retorna byte mas significativo.
Advertencias
Cuidado al trabajar con tipo long que es de 4 bytes, porque highByte() se refiere al que esta a la izquierda del LSB y no se refiere al MSB.
long val = 0x11223344; highByte(val); //33 lowByte(val); //44 (LSB)
Ejemplo 1
Descomponer en bytes y reconstruir un int.
void setup(){
Serial.begin(9600);
//Descomponer
int dat1 = 12345;
Serial.prinln(dat1, HEX); //ox3039
byte val1 = highByte(dat1); //0x30 (MSB)
byte val2 = lowByte(dat1); //0x39 (LSB)
Serial.println("-------");
//Reconstruir
int dat2;
dat2 = val1; //Tomamos MSB
dat2 <<= 8; //Desplazamos 8 bits a la izquierda
dat2 |= val2; //Añadimos LSB
Serial.prinln(dat2, HEX); //0x3039
}
void loop(){
//Nada
}
Ejemplo 2
Vea también
- bit()
- bitClear()
- bitRead()
- bitSet()
- bitWrite()
- bitshift left - (<<)
- bitshift right - (>>)
- lowByte()
- shiftIn()
- shiftOut()
- or bit a bit compuesto (|=)
- and bit a bit compuesto (&=)