highByte()
highByte(x)
Se o lowByte() pega a metade de baixo de um número, o highByte() faz o oposto: devolve os 8 bits mais à esquerda. Num int ou word de 16 bits, é o segundo byte. Serve pra separar valores grandes antes de transmitir, ou pra remontá-los depois.
Sintaxe
highByte(x);
Parâmetros
- x: o valor de onde extrair o byte (qualquer tipo inteiro).
Retorno
Um byte com o segundo byte menos significativo de x (o byte alto num valor de 16 bits).
Exemplo
void setup() {
Serial.begin(9600);
int leitura = 812; // 0x032C
byte alto = highByte(leitura); // 0x03
byte baixo = lowByte(leitura); // 0x2C
// remontando o valor original:
int reconstruido = (alto << 8) | baixo;
Serial.println(reconstruido); // imprime 812
}
void loop() {
}
Notas e cuidados
- Em variáveis maiores que 16 bits (
long, por exemplo),highByte()pega apenas o segundo byte de baixo, não o mais alto de todos. - Pra remontar o número, lembre de deslocar o byte alto 8 casas:
(alto << 8) | baixo.