Página 1 de 1

Duvida SHL

MensagemEnviado: 23 Jan 2008 13:00
por pitufos
Ola pessoal...
Seguinte :
Tenho uma aplicação que deve converter 4 bytes em uma variável de ponto flutuante 32 bits...

Exemplo :

dado := ( ord(buf[4]) shl 24 ) or ( ord(buf[3]) shl 16 ) or ( ord(buf[2]) shl 8 ) or ( ord(buf[1] ) );

A variavel dado é do tipo Real;
A variavel buf é do tipo string;
Valor individual dos bytes :
buf[1] =130
buf[2] =35
buf[3] =51
buf[4] =51

dado := ( ord(buf[4]) shl 24 ) or ( ord(buf[3]) shl 16 ) or ( ord(buf[2]) shl 8 ) or ( ord(buf[1] ) );

O valor que deveria ser é : 10.2
O valor que esta aparecendo é : 858989442

Para valores inteiros funciona normalmente(16bits)...

Alguem alguma opinião ?


Leandro