Ce que je sais numerics non signés (unsigned short, int et désire ardemment), qu'il contient des nombres positifs seulement, mais le programme simple suivant a réussi à attribuer un nombre négatif à un entier non signé:Pourquoi unsigned int contenait nombre négatif
1 /*
2 * =====================================================================================
3 *
4 * Filename: prog4.c
5 *
6 * =====================================================================================
7 */
8
9 #include <stdio.h>
10
11 int main(void){
12
13 int v1 =0, v2=0;
14 unsigned int sum;
15
16 v1 = 10;
17 v2 = 20;
18
19 sum = v1 - v2;
20
21 printf("The subtraction of %i from %i is %i \n" , v1, v2, sum);
22
23 return 0;
24 }
la sortie est: The subtraction of 10 from 20 is -10
En outre, votre message est trompeur. Il devrait dire "La soustraction de ** 20 ** de ** 10 ** est ..." qui est ce que vous calculez. –
Je ne cherche pas une solution pour un tel problème, je veux comprendre l'idée à ce sujet. –
double possible de [C unsigned int fournir une valeur négative?] (Http://stackoverflow.com/questions/1831753/c-unsigned-int-providing-a-negative-value) –