segunda-feira, 26 de agosto de 2013

IEEE754 Visual C#

O padrão IEEE754 define algumas regras de normalização a serem seguidas nas operações e representações de números binários com ponto flutuante. Antes disso, cada fabricante de computadores e outros dispositivos, possuía um formato de representação diferente. Neste formato podemos escrever valores entre -1E-126 até 1E127.Alguns fabricantes de sensores adotam esta representação para enviar dados de sensores. Para transformar esta cadeia de bytes em um número válido, utilizando o C# criei uma função para isto.Tendo em vista que você esta recebendo esta sequencia de bytes em uma string representada em ascii, formato hexadecimal:

Console.Write("Digite os 8 bytes (padrão ieee 754): ");

string strByte = Console.ReadLine();

uint num = uint.Parse(strByte,System.Globalization.NumberStyles.AllowHexSpecifier);

byte[] floatVals = BitConverter.GetBytes(num);

float f = BitConverter.ToSingle(floatVals, 0);

Console.Write("Equivalente em float, single precision: " + f);

Console.ReadKey();

O projeto esta disponível neste link (Visual Studio 10).

Digite os 8 bytes em hexadecimal e pressione Enter. O resultado aparecerá na tela.