No
tópico anterior, consideramos um novo formato para representar números decimais de ponto flutuante, que denominamos formato misto decimal-binário (SDDF).
Esse formato permite realizar cálculos aritméticos em um computador sem usar o BCD com a mesma precisão que se os cálculos fossem realizados manualmente.
Lembre-se de que um formato binário decimal misto (SDDF) é um formato de representação de código binário para números de ponto flutuante decimal, em que a mantissa inteira é o equivalente binário de seu valor decimal e o expoente é o equivalente binário da potência de 10. O número real em SDF é representado como
onde
ee são números inteiros binários. O equivalente binário de um número decimal é o código binário desse número decimal no formato selecionado. O equivalente decimal de um número binário é o código decimal desse número binário.
Vamos comparar as propriedades básicas dos números de ponto flutuante, apresentadas no padrão IEEE754 e no SDDF. Para simplificar, considere uma palavra de máquina de 16 bits. Este é o chamado formato de
meia precisão . Os resultados da comparação podem ser facilmente dimensionados para o caso de um formato de intercâmbio de precisão simples e dupla.
Dividimos a palavra binária de 16 bits nos seguintes campos: S, e, m. Onde está o dígito S do sinal do número, e - 5 bits do expoente deslocado, m - 10 bits do equivalente binário da mantissa decimal do número. O valor binário máximo do expoente de deslocamento registrado no registro de 5 bits será igual a emax = 11111 ou na forma decimal emax = 31. O deslocamento neste caso é 15.
Então
1 O número compactado mantissa em IEEE754 contém a parte fracionária do número mantissa.
O número da mantissa no SDDF é um número inteiro binário.2) A mantissa IEEE normalizada no formato descompactado se parece com 1.xxxxxxxxxx. Onde x é qualquer dígito binário.
Como a mantissa é normalizada, sua parte inteira na forma desembalada é sempre igual a 1. Esta unidade não pode ser armazenada na memória da máquina. Assim, na forma descompactada, levando em consideração a unidade virtual, a mantissa terá 11 bits.
A mantissa normalizada no SDDF é um número inteiro binário igual ao equivalente ao número decimal, que no nosso caso é representado por três dígitos: UXX. Onde U é qualquer dígito decimal diferente de zero. X é qualquer dígito decimal.
Um número decimal máximo de 1023 pode ser representado em 10 bits da mantissa.Todos os números inteiros menores que 1023 podem ser representados por 10 bits. Portanto, todos os números inteiros decimais com mantissa ≤ 999 podem ser exatamente representados por 10 bits da mantissa.3) No IEEE754, a mantissa binária normalizada máxima é Mmax = 1.1111111111 = 1.9990234375
O número garantido de dígitos válidos que podem ser representados por uma mantissa binária de 11 bits
é 3 .
A mantissa decimal normalizada máxima no SDDF é Mmax = 999 ou Mmax binária = 1 111 100 111. O equivalente decimal da mantissa consiste em 3 dígitos decimais. Portanto, a mantissa de três dígitos em nosso exemplo é representada com precisão no SDDF 3 em dígitos decimais significativos.4) No IEEE754, o valor mínimo da mantissa normalizada, com emin = 0, será: Mmin = 1,0
A mantissa mínima normalizada no SDDF, emin = 0, é igual ao número decimal Mmin = 100. Ou no formato binário Mmin = 0001100100.5) O número decimal positivo máximo que pode ser gravado no formato IEEE754 com um expoente tendencioso será
Fmax = 2 ^ emax * Mmax = 2 ^ 31 * 1.9990234375 = 4292870144 = 4.292870144 * 10 ^ 9. No entanto, no padrão, o número máximo é o número Fmax = 2 ^ emax = 2 ^ 31 = 4294967296 = 4.294967296 * 10 ^ 8. Números> 2 ^ 31 são considerados iguais mais infinito.
O número decimal positivo máximo que pode ser escrito com precisão no formato SDDF com um expoente tendencioso será
Fmax = 10 ^ emax * Mmax = 10 ^ 31 * 999 = 9,99 * 10 ^ 336 O intervalo de números normalizados aproximados que podem ser representados no formato IEEE será
Fmax / Fmin = 2 ^ 31 = 4294967296 = 4,294967296 * 10 ^ 8
O intervalo de números exatos que podem ser representados no formato SDDF será igual a
Fmax / Fmin = 9,99 * 10 ^ 317) A etapa de alterar o número binário no IEEE com um expoente de deslocamento (emin = 0) é:
h = 0,0000000001 = 2 ^ -10 = 0,0009765625
A etapa de alterar o número decimal no SDDF com um expoente deslocado (emin = 0) é:
h = 00001100100 = 1008) No IEEE754, com um expoente tendencioso, se e = 0, todos os números <1,0 são subnormais. Quanto menor o número subnormal, menos precisamente representa seu equivalente decimal. Algoritmos especiais são necessários para codificar números subnormais em um formato de troca, decodificação de um formato de troca, bem como traps especiais para determinar números subnormais durante operações aritméticas.
Não há números subnormais no SDDF. Todos os números são representados com uma precisão, no nosso caso, até 3 dígitos significativos.9 Com um expoente imparcial, o número decimal positivo positivo normalizado máximo que pode ser gravado no formato IEEE754 será
Fmax = 2 ^ emax * Mmax = 2 ^ 15 * 1.9990234375 = 65504. No entanto, no padrão, o número máximo é o número Fmax = 2 ^ emax = 2 ^ 15 = 32768. Números> 32768 são considerados iguais mais infinito.
Com um expoente imparcial, o número decimal positivo máximo que pode ser gravado no SDDF será igual a
Fmax = 10 ^ emax * Mmax = 999 * 10 ^ 15 = 9,99 * 10 ^ 1710) Com um expoente imparcial, o número decimal positivo normalizado mínimo no formato IEEE754 será Fmin = 1,0 * 2 ^ -15 =
3,0517578125 * 10 ^ -5.
Com um expoente imparcial, o número decimal positivo normalizado mínimo que pode ser gravado no formato SDDF será Fmin = 100 * 10 ^ -15 = 10 ^ -1311) Com um expoente imparcial, o passo decimal equivalente binário mínimo no IEEE é:
Qual o valor de x na equação ax2 + bx + c = 0?
Com um expoente imparcial, a etapa mínima no SDDF coincide com o número mínimo e é igual a:
Qual é o valor da expressão?12) No IEEE754, a função da dependência do valor do equivalente decimal do número Fd em seu valor binário não é uniforme, porque para alterar em 1 o dígito menos significativo da mantissa decimal do número, como regra, é necessária a soma de vários h iguais à máquina Ɛ.
Assim, por exemplo, se e = 0, para Fd1 = 1.0 = 1.0000000000 e Fd2 = 1.1≈1.0001100110, teremos
Fd2- Fd1 = 1.0001100110 -1.0000000000 = 0.0001100110 = 0.099609375
0.0001100110 / h = 0.0001100110 / 0.0000000001 = 1100110 = 102 = Ɛ
No SDDF, a função da dependência do valor do equivalente decimal do número Fd em seu valor binário é uniforme. Qualquer alteração em h do equivalente binário do número decimal mantissa implica uma alteração no 1 bit menos significativo do equivalente decimal do número. Aqui a máquina Ɛ = 1. Sério.
Se e = 0,
Fd1 = 100 = 0001100100
Fd2 = 200 = 0011001000
Fd2- Fd1 = 0011001000-0001100100 = 0001100100 = 100 = hEm conclusão, apresentamos as principais características da representação de números reais no padrão IEEE754 e SDDF para o formato de troca, composto por 32 bits (precisão única no padrão IEEE754).
Para o IEEE754, os bits de palavra-máquina de precisão única são alocados como S - 1 bit do código de sinal, e - 8 bits do expoente polarizado, m - 23 bits explícitos de mantissa. Sem embalagem, m = 24.
Para IEEE754:O coeficiente de deslocamento exponencial é 127 emax = 127. A ordem imparcial do menor número normalizado com M = 1,0 é p = e-127 + 1 = -126. Os números <2 ^ -126 são considerados subnormais.
O número mínimo normalizado é Fmin = 1,0 * 2 ^ -126 = 1.1754943508222875079687365372222e-38
O número máximo normalizado
Fmax = 2 ^ 127 = 1,7014118346046923173168730371588e + 38
Números que excedem 2 ^ 127 são considerados infinito positivo.
Para SDDF, os dígitos da palavra da máquina são distribuídos da seguinte forma: S - 1 dígito, e - 7 bits, m - 24 bits. O coeficiente de deslocamento exponencial é 63. Então
emax = 64
Mmax = 9999999
Fmax = 9999999 * 10 ^ 64 = 9,999999 * 10 ^ 70
Fmin = 1.000.000 * 10 ^ -63 = 10 ^ -57
A precisão da representação de números decimais reais é de 7 dígitos decimais significativos.