Bonjour.
J'ai un programme de calcul dans lequel je dois travailler avec des unsigned long long int (entier 64 bits). Mon problème est le suivant :
- certaines données seulement ont besoin d'être des entiers 64
- mais avec les autres, je dois pouvoir faire des opérations avec des entiers 64.
Imaginons par exemple que j'ai un tableau de 10000 nombres compris entre 0 et 65535. Je peux donc utiliser des "unsigned short int" pour prendre très peu de place en mémoire. Cependant j'ai besoin que pouvoir faire des opérations du type : a=b*c avec a et b "unsigned long long int" et "unsigned short int". Dans le cas d'une telle opération, est-ce que le cpu doit convertir c en "unsigned long long int" avant d'effectuer le calcul ?
Parce que si une telle conversion doit être faite, je suppose que cela doit coûter un certain nombre de ticks d'horloge... Du coup, est-ce qu'il est plus rapide de travailler avec un tableau de 10000 "unsigned long long int" qui me prends plus de place en mémoire, mais évite de perdre du temps à caster ?
Merci![]()
Partager