is output in base 8 and base 16.
Since base 8 and base 16 have no negative numbers, -5 is actually a very large integer. It's the maximum value of type unsigned int minus 5
printf converts this maximum value to the corresponding base 8 and base 16 for output