Por que eu escolhi o método da potência de 10? #23
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Essa tabela mostra como o método de contagem pelas potências de 10 é mais eficiente do que o método das divisões sucessivas:
imul r64, r64, imm
div r64
Eu estimei as latências com base neste PDF, muito utilizado na engenharia, para o modelo da minha CPU (Haswell), considerando possíveis variações em CPUs modernas.
Uma preocupação com a potência de 10 poderia ser a possibilidade de overflow, mas estamos trabalhando com inteiros de 64 bits sem sinal, o que estabelece um limite de
2^64 - 1
:Este número tem 20 dígitos, o que significa que os expoentes da base 10 irão de
0
a19
, portanto:Que é menor que
18446744073709551615
:Nota: eu usei a minha calculadora em Bash e AWK, cawk, para obter esses resultados.