Entrar    Registrar

Duvida SHL

Programação Delphi e Pascal

Moderadores: guest2003, 51

  • Autor
    Mensagem

Duvida SHL

Mensagempor pitufos » 23 Jan 2008 13:00

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
pitufos
Bit
 
Mensagens: 12
Registrado em: 16 Out 2006 09:46
Localização: Americana - SP

Voltar para Delphi e Pascal

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante