
Envoyé par
Iradrille
Quelques soient les nombres, la technique reste la même. Et c'est le même algo qu'une multiplication en base 10 (oui, oui, celui qu'on apprend au CE1 ou CE2).
Mais il y à deux problèmes majeurs à travailler en base 10 : une mauvaise utilisation de la mémoire, utiliser 8 bits par chiffre (cad. 8 bits pour représenter 10 valeurs), alors qu'on peut représenter 256 valeurs avec 8 bits.
Exemple : 94267185624
en base 10, taille = log10(94267185624) = 11 octets (88 bits + 1 bit de signe)
en base 2, taille = log2(94267185624) = 35 bits + 1 bit de signe
Et des problèmes d'optimisations : un CPU fonctionne en base 2, il sera bien plus simple d'optimiser des calculs en base 2, qu'en base 10, sans compter les problèmes qui peuvent arriver avec une plus grande utilisation de mémoire : plus de cache miss, etc...
Niveau optimisation, même sans parler de vectorisation, en base 2 on peut facilement faire des opérations sur 32 bits d'un coup (voir 64 bits pour les additions), alors qu'en base 10 il faudra faire chaque chiffre 1 par 1.
2^32 > 10^9. En base 10 il faudra faire 9 opérations là ou en base 2 on n'en fera qu'une.
Même si il semble y avoir moins d'étapes en base 10, les calculs seront plus long.
Partager