"(char, short) < int < unsigned int < long int < unsigned long int < float < double < long double "
This always works for me. I have checked this at the codeblock. unsigned int get converted in long int.
Here is the code which i have tested.
int main(){
unsigned int a = -5;
long int b = 10;
cout<<a+b<<endl; // This is giving output 5. It menans unsigned int get converted in long int.
return 0;
}