public static int GetLeastSignificantBit(uint bitBlock)
{
var leastSignificantBit = 1;
if ((bitBlock & 65535) == 0)
{
bitBlock >>= 16;
leastSignificantBit |= 16;
}
if ((bitBlock & 255) == 0)
{
bitBlock >>= 8;
leastSignificantBit |= 8;
}
if ((bitBlock & 15) == 0)
{
bitBlock >>= 4;
leastSignificantBit |= 4;
}
if ((bitBlock & 3) == 0)
{
bitBlock >>= 2;
leastSignificantBit |= 2;
}
return leastSignificantBit - (int)(bitBlock & 1);
}
}