Advanced C question:Why does if return true?
unsigned int i = 8; 
int j = -16;
    if(i+j > 5){
        printf(">5 = %d\n",i+j);
    }else{
        printf("<5 = %d\n",i+j);
    }
Advanced C question:Why does if return true?
unsigned int i = 8; 
int j = -16;
    if(i+j > 5){
        printf(">5 = %d\n",i+j);
    }else{
        printf("<5 = %d\n",i+j);
    }
 
    
     
    
    When a signed int is operated with unsigned int then it is converted to unsigned int. Since -16 can't be represented as unsigned int, maximum value that can be represented ny unsigned int (UINT_MAX) is added to -16.
