hexadecimal converting back into decimal

To begin with, FFFF does not represent 2^16, but rather 2^16 – 1 (it would not be possible for any power of two to be an odd number). Much like the decimal digits represent quantities of increasing powers of 10, hex digits represent quantities of increasing powers of 16 (in each case, the number whose powers we … Read more

How to tell if hex value is negative?

Read up on Two’s complement representation: https://en.wikipedia.org/wiki/Two%27s_complement I think that the easiest way to understand how negative numbers (usually) are treated is to write down a small binary number and then figure out how to do subtraction by one. When you reach 0 and apply that method once again – you’ll see that you suddenly … Read more

Printing hexadecimal characters in C

You are seeing the ffffff because char is signed on your system. In C, vararg functions such as printf will promote all integers smaller than int to int. Since char is an integer (8-bit signed integer in your case), your chars are being promoted to int via sign-extension. Since c0 and 80 have a leading 1-bit (and are negative as an 8-bit integer), they are being sign-extended while the others in your … Read more