Hi Experts, <br><br>I don't really understand the purpose of using bitwise left-shift in constant value of PurpleInputCondition enum. <br><br>typedef enum<br>{<br>    PURPLE_INPUT_READ  = 1 << 0,  /**< A read condition.  */
<br>    PURPLE_INPUT_WRITE = 1 << 1   /**< A write condition. */<br><br>} PurpleInputCondition;<br><br>Could we just use these method instead?<br><br>typedef enum<br>{<br>    PURPLE_INPUT_READ  = 1,  /**< A read condition.  */
<br>    PURPLE_INPUT_WRITE = 2   /**< A write condition. */<br><br>} PurpleInputCondition;<br><br><br>When I google for bitwise shift, they said that bitwise shifts are more efficient than the normal arithmetic operations.
<br><p>Example: <tt>4 << 2</tt>. </p>
<p>4 is 100 in binary. Adding 2 zeros to the end gives 100<span class="BLUE">00</span>, which is 16, i.e. <br>
  4*2<sup>2</sup> = 4*4 = 16. </p>I don't quiet understand why we're doing arithmetic binary in the  <br>    PURPLE_INPUT_READ  = 1 << 0,  and PURPLE_INPUT_WRITE = 1 << 1  <br><br><br><br>Thank you for the explaination.
<br><br>Kindes Regard, <br>pr0gm3r<br>