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.

Quer aprender a usar isso em projetos reais, do zero?

Conhecer o Curso Maker