Bonjour,

Soit le code suivant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
unsigned int a = 10;
int b = -6;
int tmp;
 
tmp = a * b;
 
printf("%d\n", tmp);
Cela affiche -60.
Mais il me semble que b est converti en unsigned et devient donc très grand, et que ce code fonctionne parce que mon compilateur utilise la représentation en complément à 2.
Est-ce que c'est correct ? Est-il raisonable d'assumer que la majorité des machines et compilateurs actuels utilisent cette représentation ?