The binary representation already discussed is not quite sufficient for C, since we also need to represent negative integers as sequences of bits. (Can't put a minus sign in between bits in memory, just 0's and 1's.)
C also needs to represent values between 0 and 1, etc.
C numeric types:
Integers (signed: positive, negative and 0)
Unsigned integers (only 0 and positive)
Floating point numbers (single and double sizes)