Articles of ieee 754

Representando inteiros em duplas

Um duplo (de um determinado número de bytes, com um equilíbrio razoável de mantisa / expoente) pode sempre manter precisamente o intervalo de um inteiro sem sinal de metade desse número de bytes? Por exemplo, um double de oito bytes pode conter com precisão o intervalo de números de um int não assinado de quatro […]

Fusão multiplicar adicionar e modos de arredondamento padrão

Com o GCC 5.3, o seguinte código compilar com -O3 -fma float mul_add(float a, float b, float c) { return a*b + c; } produz o seguinte conjunto vfmadd132ss %xmm1, %xmm2, %xmm0 ret Eu observei o GCC fazendo isso com o -O3 já no GCC 4.8 . Clang 3.7 com -O3 -mfma produz vmulss %xmm1, […]

Bytes de leitura / gravação de float em JS

Existe alguma maneira que eu possa ler bytes de um valor float em JS? O que eu preciso é escrever um valor bruto FLOAT ou DOUBLE em algum formato binário que preciso fazer, então existe alguma maneira de obter uma representação IEEE 754 byte-by-byte? E a mesma pergunta para escrever é claro.

Flutuante duplo vs no iPhone

Acabei de ouvir que o iphone não pode fazer o dobro nativamente, tornando-os muito mais lento que o float regular. Isso é verdade? Evidencia? Estou muito interessado no assunto porque meu programa precisa de cálculos de alta precisão e terei que comprometer a velocidade.

Por que os números de ponto flutuante são impressos de forma tão diferente?

É uma espécie de conhecimento comum que (a maioria) números de ponto flutuante não são armazenados precisamente (quando o formato IEEE-754 é usado). Então não se deve fazer isso: 0.3 – 0.2 === 0.1; // very wrong … pois resultará em false , a menos que algum tipo / class de precisão arbitrária específica tenha […]

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 […]