Articles of ieee 754

Portabilidade de serialização binária do tipo double / float em C ++

O padrão C ++ não discute o layout subjacente dos tipos float e double, apenas o intervalo de valores que eles devem representar. (Isto também é verdade para tipos assinados, é elogio de dois ou outra coisa) Minha pergunta é: Quais são as técnicas usadas para serializar / desserializar os tipos de POD, como double […]

Conversão de ponto flutuante de 32 bits para 16 bits

Eu preciso de uma biblioteca / algoritmo multi-plataforma que irá converter entre números de ponto flutuante de 32 bits e 16 bits. Eu não preciso executar matemática com os números de 16 bits; Eu só preciso diminuir o tamanho dos floats de 32 bits para que eles possam ser enviados pela rede. Eu estou trabalhando […]

Por que converter de float para double altera o valor?

Eu tenho tentado descobrir o motivo, mas não consegui. Alguém pode me ajudar? Veja o exemplo a seguir. float f; f = 125.32f; System.out.println(“value of f = ” + f); double d = (double) 125.32f; System.out.println(“value of d = ” + d); Esta é a saída: valor de f = 125,32 valor de d = […]

Algoritmo para converter um IEEE 754 duplo em uma string?

Muitas linguagens de programação que usam doações IEEE 754 fornecem uma function de biblioteca para converter essas duplas em strings. Por exemplo, C tem sprintf , C ++ tem stringstream , Java tem Double.toString , etc. Internamente, como essas funções são implementadas? Ou seja, que algoritmo (s) eles estão usando para converter o duplo em […]

Como verificar se o compilador C ++ usa o padrão de ponto flutuante IEEE 754

Eu gostaria de fazer uma pergunta que se segue a esta que é muito bem respondida pela verificação de definição se o compilador usa o padrão. No entanto, isso só funciona para C. Existe uma maneira de fazer o mesmo em C ++? Eu não quero converter tipos de ponto flutuante em texto ou usar […]

Coagir o ponto flutuante a ser determinístico no .NET?

Eu tenho lido muito sobre o determinismo de ponto flutuante no .NET, ou seja, garantir que o mesmo código com as mesmas inputs forneça os mesmos resultados em diferentes máquinas. Como o .NET carece de opções como o fpstrict do Java e o fp: strict do MSVC, o consenso parece ser que não há maneira […]

Alguma CPU do mundo real não usa o IEEE 754?

Estou otimizando uma function de sorting para uma biblioteca numérica / estatística com base na suposição de que, após filtrar qualquer NaNs e fazer um pouco de distorção, floats podem ser comparados como ints de 32 bits sem alterar o resultado e duplas podem ser comparadas como Ints de 64 bits. Isso parece acelerar a […]

Precisão dupla – casas decimais

Pelo que li, um valor do tipo de dados double tem uma precisão aproximada de 15 casas decimais. No entanto, quando eu uso um número cuja representação decimal repete, como 1.0 / 7.0, acho que a variável contém o valor de 0,14285714285714285 – que é 17 lugares (através do depurador). Eu gostaria de saber por […]

Formatação dobra para saída em c #

Executando um experimento rápido relacionado ao Double Multiplicação Quebrado em .NET? e lendo alguns artigos sobre formatação de C #, achei que isso: { double i = 10 * 0.69; Console.WriteLine(i); Console.WriteLine(String.Format(” {0:F20}”, i)); Console.WriteLine(String.Format(“+ {0:F20}”, 6.9 – i)); Console.WriteLine(String.Format(“= {0:F20}”, 6.9)); } Seria o equivalente em C # deste código C: { double i […]

A matemática de ponto flutuante é consistente em C #? Pode ser?

Não, isso não é outra pergunta “Por que é (1 / 3.0) * 3! = 1” . Eu tenho lido muito sobre os pontos flutuantes ultimamente; especificamente, como o mesmo cálculo pode fornecer resultados diferentes em diferentes arquiteturas ou configurações de otimização. Este é um problema para os videogames que armazenam replays, ou são peer-to-peer […]