Lo que sé de los valores numéricos sin signo (unsigned short, int y largos), que contiene los números positivos solamente, pero el siguiente programa sencillo asignado correctamente un número negativo a un unsigned int:int Por qué no firmada contenía número negativo
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 salida es: The subtraction of 10 from 20 is -10
Además, su mensaje es engañoso. Debería decir "La resta de ** 20 ** de ** 10 ** es ..." que es lo que está calculando. –
No estoy buscando una solución para ese problema, quiero entender la idea al respecto. –
Posible duplicado de [C Unsigned int que proporciona un valor negativo?] (Http://stackoverflow.com/questions/1831753/c-unsuns-int-providing-a-negative-value) –