C - unsigned
- 
					
					
					
					
 Hallo, ich wollte verhindern, dass man in meiner funktion negative Werte eingeben, aber es funktioniert trotzdem: #include <stdio.h> void funktion ( unsigned ) ; int main ( void ) 
 {
 funktion ( -5 ) ;return 0 ;} void funktion ( unsigned int number ) 
 {
 printf ( "%d" , number ) ;
 }gibt -5 aus ist das im Parameter also keine Lösung dafür? 
 
- 
					
					
					
					
 %dist der Formatspecifier für signed int (als Dezimalzahl)Nimm %uUnd das Bitmuster von -5 hat auch eine Entsprechung als unsigned 
 
- 
					
					
					
					
 ok danke. für %u komm jetzt 42949672911 
 was bedeutet das?ich habe halt gedacht, dass gar nicht kompiliert wird wenn ich dem Parameter negative Werte zuordne 
 aber es kommt ja imer noch was rausDeinen zweiten Satz verstehe ich nicht. aso ok also negative Zahlen habe trotzdem irgendwie unsigned dartstellungen? 
 
- 
					
					
					
					
 @JamesNguyen sagte in C - unsigned: ich habe halt gedacht, dass gar nicht kompiliert wird wenn ich dem Parameter negative Werte zuordne 
 aber es kommt ja imer noch was rausGarbage in, Garbage out. 
 Du steckst Müll rein und bekommst Müll raus.Deinen zweiten Satz verstehe ich nicht. 
 aso ok also negative Zahlen habe trotzdem irgendwie unsigned dartstellungen?Ist dir schon mal am Wertebereich der signed/unsigned Typen etwas aufgefallen? 
 Beiunsigned charhast du 256 Werte von 0 bis 255
 Beisigned charhast du 256 Werte von (meist) -128 bis +127
 Bei short, int, long und long long ist es entsprechendDabei wird (meist) https://de.wikipedia.org/wiki/Zweierkomplement als Darstellung benutzt.