Perche '-5 (senza segno) 5' è falso? [duplicare]

-1

In c programmazione perché sto ottenendo 0 zero per questo? Perché -5<(unsigned)5 è falso?

main(){  
printf("%d",-5<(unsigned)5);  
getch();  
}
    
posta tyt 25.11.2015 - 20:15
fonte

1 risposta

4

Perché lo fa come un confronto senza segno, il che significa che in realtà sta controllando se UINT_MAX - 4 < 5 , che ovviamente è falso.

L'IMO senza tipi non firmati è una delle poche cose che Java ha davvero ragione. Significa che non hai mal di testa come questo.

    
risposta data 25.11.2015 - 20:17
fonte

Leggi altre domande sui tag