Multiplicando números de 32 bits mod 32 no Excel

0

Eu quero usar o Excel para multiplicar inteiros de 32 bits e obter os 32 bits inferiores. Em outras palavras, dado números n1, n2, eu quero calcular MOD (n1 * n2, 2 ^ 32). No entanto, essa fórmula não funciona no Excel porque (para n1 e n2 maiores), o produto excede a capacidade de precisão do Excel e, portanto, arredonda os dígitos mais baixos. Existe alguma maneira de eu evitar isso enquanto ainda estiver usando o Excel?

Uma solução primitiva que consegui criar foi simplesmente dividir um dos números em pedaços de 8 bits e multiplicar de acordo (usando o MOD quando necessário para truncar), mas estou procurando algo menos confuso, espero.

    
por ruadath 27.01.2017 / 08:16

2 respostas

1

Se você olhar para as especificações e limites , você verá que pelo menos desde o Excel 2007 os seguintes limites foram estabelecidos:

Number precision 15 digits

Smallest allowed negative number -2.2251E-308

Smallest allowed positive number 2.2251E-308

Largest allowed positive number 9.99999999999999E+307

Largest allowed negative number -9.99999999999999E+307

Largest allowed positive number via formula 1.7976931348623158e+308

Largest allowed negative number via formula -1.7976931348623158e+308

Como você pode ver, inevitavelmente perderá a precisão dependendo dos números que estiver usando.

Conforme você especificou números de 32 bits (assumindo números inteiros sem sinal), o valor máximo que você precisaria computar seria 18.446.744.073.709.551.616 (2 ^ 32 * 2 ^ 32 = 2 ^ 64) que excede claramente o limite de 15 dígitos, embora não excede o limite do número máximo que pode ser calculado.

Além disso, você planeja obter os 32 bits mais baixos do resultado, provavelmente seria melhor recorrer a uma linguagem de programação ou script para fazer tal cálculo.

    
por 27.01.2017 / 10:21
0

Uma solução primitiva que consegui criar foi simplesmente dividir um dos números em pedaços de 8 bits e multiplicar de acordo (usando o MOD quando necessário para truncar), mas estou procurando algo menos confuso, espero.

    
por 27.01.2017 / 10:19