Pollux
:
Kevin> Je pensais pas que t'irais jusqu'à coder en base 255 pour avoir une "perfection mathématique" complètement ridicule...
(surtout qu'asymptotiquement, le codage est moins efficace, même s'il l'est plus pour des petits entiers)
Au contraire, c'est pour les petits entiers qu'il est moins efficace que celui de GoldenCrystal, et plus les entiers sont grands, plus il deviendra plus efficace!
1 -> mon codage: 02 00, celui de GoldenCrystal: 01
255 -> mon codage: FF 01 00, celui de GoldenCrystal: FF 01
256
8 -> mon codage: int(
255log(256
8))+2=10 octets, celui de GoldenCrystal: int(
128log(256
8))+1=10 octets
256
16 -> mon codage: int(
255log(256
16))+2=18 octets, celui de GoldenCrystal: int(
128log(256
8))+1=19 octets
256
100 -> mon codage: int(
255log(256
100))+2=102 octets, celui de GoldenCrystal: int(
128log(256
100))+1=115 octets
Quant à celui que tu défends, il n'est pas dans la même ligue parce qu'il est limité en taille.
Et comme il veut une solution 68k-only
Tu as lù ça où?
Je vois pas pkoi tu cherches midi à 14 heures avec des "solutions" carrément inefficaces (calculer un modulo 255 à chaque fois, miam
), alors que la solution triviale marche incroyablement bien.
Je cherche une solution qui répond à ses contraintes, ce qui n'est pas le cas de celle que tu défends.
Timad> il y a aussi une question que tu devrais te poser, c'est l'ordre des octets. Ca peut être une bonne idée de garder la même endianness que le 68k (ça permet de manipuler long par long au lieu de short par short pour les additions), mais il faut aussi considérer le fait que -(An) est plus lent que (An)+...
En source de
move seulement. Aucune différence partout ailleurs. Du moins à en croire ma taille de timings. Et puis on n'est pas à 2 cycles près...