title: Fastest way to get last significant bit position in a ulong (C#)?
body: <p>What is the fastest(or at least very fast) way to get first set(1) bit position from least significant bit (LSB) to the most significant bit (MSB) in a ulong (C#)? 
  For <code>ulong i = 18;</code> <em>(10010)</em> that would be 2(or 1 if we are counting position from 0).</p>
  
  <p><em>MS C++ compiler has  <a href="https://msdn.microsoft.com/en-us/library/wfd9z0bb.aspx" rel="noreferrer">_BitScanForward64</a> Intrinsics  for this task, but C# compiler doesn't have analogue.</em></p>