title: Macro values defined using bit-shifts
body: <p>I've been going through an old source project, trying to make it compile and run (it's an old game that's been uploaded to GitHub). I think a lot of the code was written with C-style/C-syntax in mind (a lot of typedef struct {...} and the likes) and I've been noticing that they define certain macros with the following style:</p>
  
  <pre><code>#define MyMacroOne (1&lt;&lt;0) //This equals 1
  #define MyMacroTwo (1&lt;&lt;1) //This equals 2, etc.
  </code></pre>
  
  <p>So my question now is this - is there any reason why macros would be defined this way? Because, for example, 0x01 and 0x02 are the numerical result of the above. Or is it that the system will not read MyMacroOne = 0x01 but rather as a "shift object" with the value (1&lt;&lt;0)? </p>
  
  <hr>
  
  <p>EDIT: Thanks for all of your inputs!</p>