Quello che so di valori numerici senza segno (unsigned short, int e lunghi), che contiene solo i numeri positivi, ma il seguente programma semplice assegnato con successo un numero negativo per un unsigned int:int Perché non firmato conteneva numero 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 }
il risultato è: The subtraction of 10 from 20 is -10
Inoltre, il tuo messaggio è fuorviante. Dovrebbe dire "La sottrazione di ** 20 ** da ** 10 ** è ..." che è ciò che stai calcolando. –
Non sto cercando una soluzione per un problema del genere, voglio capirne l'idea. –
Possibile duplicato di [C Unsigned int che fornisce un valore negativo?] (Http://stackoverflow.com/questions/1831753/c-unsigned-int-providing-a-negative-value) –