Ofereço ajuda em Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD
Ofereço ajuda em PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO

Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica.

Você está aqui: Delphi ::: Win32 API (Windows API) ::: Tipos de Dados

Como formar um WORD a partir de dois BYTE

Quantidade de visualizações: 12057 vezes
O tipo de dados BYTE da API do Windows é um tipo integral de 8 bits sem sinal (com valor mínimo de 0 e máximo de 255) enquanto o tipo WORD é um tipo integral de 16 bits também sem sinal (com o valor mínimo de 0 e o máximo de 65.535). Isso nos mostra que um WORD é o dobro de um BYTE.

Em algumas ocasiões pode ser necessário guardar em um WORD o valor de dois BYTE, talvez com o propósito de separá-los em um determinado momento (em minhas dicas nesta mesma seção você verá como isso pode ser feito).

Dois BYTE podem ser agrupados em um WORD usando a macro MAKEWORD da API do Windows. Comece analisando os seguintes valores:

Valor 1: 80
Valor 2: 120

Estes dois valores podem ser representados em binário da seguinte forma:

Valor 1: 01010000
Valor 2: 01111000

Ao combinarmos estes dois bytes em um WORD, o primeiro valor será o byte de ordem alta (mais significativo) e o segundo valor será o byte de ordem baixa (menos significativo). E o resultado será dois bytes:

Valor final: 01010000 01111000

Transformando este valor binário em decimal nós temos 20600. Vamos ver isso em Delphi? Analise cuidadosamente o trecho de código abaixo:

procedure TForm3.Button2Click(Sender: TObject);
var
  resultado: WORD;
  ordem_alta, ordem_baixa: BYTE;
begin
  // byte mais significativo
  ordem_alta := 80;

  // byte menos significativo
  ordem_baixa := 120;

  // vamos juntar os dois valores em um WORD
  resultado := MAKEWORD(ordem_baixa, ordem_alta);

  // vamos exibir o resultado
  Memo1.Lines.Add('O valor WORD resultante é: ' +
    IntToStr(resultado));
end;

Ao executar este código teremos o seguinte resultado:

O valor WORD resultante é: 20600

Note que a macro MAKEWORD pede primeiro o byte de ordem baixa e então o byte de ordem alta. O Delphi também nos oferece uma função MakeWord() que recebe dois bytes (na mesma ordem que MAKEWORD) e retorna um Word. Veja sua definição na unit Windows.pas:

function MakeWord(A, B: Byte): Word;
begin
  Result := A or B shl 8;
end;

O entendimento desta função é bem simples. Suponhamos que temos os seguintes bytes:

a: 01010000 (ordem alta)
b: 01111000 (ordem baixa)

O operador shl move (shift) o byte de ordem alta 8 bits para a esquerda, resultando em 01010000 00000000. Em seguida aplicamos o operador or (que torna um bit 0 somente quando os dois bits dos valores comparados são 0). Veja:

00000000 01111000 (ordem baixa)
01010000 00000000 (ordem alta - depois de aplicado o operador shl)
-----------------
01010000 01111000


Convertendo 01010000 01111000 para decimal nós temos 20600.

Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009.

Link para compartilhar na Internet ou com seus amigos:

Desafios, Exercícios e Algoritmos Resolvidos de Delphi

Veja mais Dicas e truques de Delphi

Dicas e truques de outras linguagens

E-Books em PDF

E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby


E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser. Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book Apenas R$ 32,90


© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 62 usuários muito felizes estudando em nosso site.