Juntar duas variaveis de byte

1. Juntar duas variaveis de byte

Rodrigo Hernandes
ortegahernandes

(usa Ubuntu)

Enviado em 20/09/2018 - 20:28h

Boa noite a todos

Estou precisando fazer dois processos

1º de unir dois bytes e uma variavel inteiro.

2º de unir ou dois inteiros em uma variavel de 32

Não quero que some os bytes e sim mantenha o valor como se fosse um único inteiro algo assim:


var
entrada :array[0..10] of byte;

begin
entrada[0] := $F5;
entrada[1] := $AD;
edit1.text := intostr(comando(entrada[0], entrada[1])) // o valor inteiro seria "F5AD"
end;



também precisaria algum que junte ou dois inteiros , ou 4 bytes no mesmo processo acima

Grato a todos
Rodrigo Hernandes.



  


2. Re: Juntar duas variaveis de byte

Brian Chalega da Silva
brian_ch

(usa Arch Linux)

Enviado em 20/09/2018 - 21:50h

Não sei se entendi bem o que você quer fazer, mas não dá pra simplesmente multiplicar o 1º valor por 256 (pra deslocar ele duas casas para a esquerda) e depois somar o 2º pra formar o inteiro que você quer? Para mostrar o hexa em string tem a função hexStr (https://www.freepascal.org/docs-html/rtl/system/hexstr.html):


var
entrada: array[1..2] of byte;
inteiro: Integer;

.....

entrada[1] := $F5;
entrada[2] := $AD;
inteiro:= entrada[1] * 256 + entrada[2];
Edit.Text:=hexStr(inteiro, 4);


Vale a pena dar uma olhada na documentação do FreePascal / Lazarus, são projetos até que bem documentados.


3. Re: Juntar duas variaveis de byte

Brian Chalega da Silva
brian_ch

(usa Arch Linux)

Enviado em 20/09/2018 - 22:01h

Falando em dar uma olhada na wiki, fui checar de novo e creio que um jeito mais claro seria ao invés da multiplicação usar o shl para deslocar o byte para a esquerda 8 bits (que é o tamanho de um byte):

inteiro:= (entrada[1] shl 8) + entrada[2];

referências:
http://wiki.freepascal.org/Shl
http://wiki.freepascal.org/Byte


4. Re: Juntar duas variaveis de byte

Rodrigo Hernandes
ortegahernandes

(usa Ubuntu)

Enviado em 21/09/2018 - 07:45h

Obrigado a ambos, putz....


brian_ch
Era muito simples...(estou com vergonha... :( ).
O problema é que não estava conseguido enxergar matematicamente.
Era exatamente o que eu precisava.

Na segunda responda pior ainda pois já usava o deslocamento para separar os bytes para envio pela serial......

Obrigado.


5. Re: Juntar duas variaveis de byte

Brian Chalega da Silva
brian_ch

(usa Arch Linux)

Enviado em 21/09/2018 - 22:19h

ortegahernandes escreveu:

Obrigado a ambos, putz....


brian_ch
Era muito simples...(estou com vergonha... :( ).
O problema é que não estava conseguido enxergar matematicamente.
Era exatamente o que eu precisava.

Na segunda responda pior ainda pois já usava o deslocamento para separar os bytes para envio pela serial......

Obrigado.


Sem problema, acontece. As vezes a matemática facilita a vida ao invés de dificultar rs.

Marca o tópico como resolvido.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts