Você está aqui: Delphi ::: Win32 API (Windows API) ::: Tipos de Dados |
|||
Como formar um WORD a partir de dois BYTEQuantidade de visualizações: 12160 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:
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:
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:
Convertendo 01010000 01111000 para decimal nós temos 20600. Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
|||
|
|
|||
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 |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |




