title: How does C know what type to expect?
body: <p>If all values are nothing more than one or more bytes, and no byte can contain metadata, how does the system keep track of what sort of number a byte represents?  Looking into Two's Complement and Single Point on Wikipedia reveals how these numbers can be represented in base-two, but I'm still left wondering how the compiler or processor (not sure which I'm really dealing with here) determines that this byte <em>must</em> be a signed integer.</p>
  
  <p>It is analogous to receiving an encrypted letter and, looking at my shelf of cyphers, wondering which one to grab.  Some indicator is necessary.</p>
  
  <p>If I think about what I might do to solve this problem, two solutions come to mind.  Either I would claim an additional byte and use it to store a description, or I would allocate sections of memory specifically for numerical representations; a section for signed numbers, a section for floats, etc.</p>
  
  <p>I'm dealing primarily with <strong>C on a Unix system</strong> but this may be a more general question.</p>