Was ich weiß, über unsigned Numerik (unsigned short, int und longs), dass es nur positive Zahlen enthält, aber das folgende einfache Programm erfolgreich eine negative Zahl zu einem unsigned int zugewiesen:Warum unsigned int enthielt negative Zahl
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 }
der Ausgang ist: The subtraction of 10 from 20 is -10
Auch Ihre Nachricht ist irreführend. Es sollte sagen "Die Subtraktion von ** 20 ** von ** 10 ** ist ...", was Sie berechnen. –
Ich suche keine Lösung für ein solches Problem, ich möchte die Idee dazu verstehen. –
Mögliches Duplikat von [C Unsigned int liefert einen negativen Wert?] (Http://stackoverflow.com/questions/1831753/c-unsigned-int-providing-a-negative-value) –