Lucene.Net.Util.BitUtil.Pop C# (CSharp) Метод

Pop() публичный статический Метод

Returns the number of bits set in the long
public static Pop ( long x ) : int
x long
Результат int
		public static int Pop(long x)
		{
			/* Hacker's Delight 32 bit pop function:
			* http://www.hackersdelight.org/HDcode/newCode/pop_arrayHS.cc
			*
			int pop(unsigned x) {
			x = x - ((x >> 1) & 0x55555555);
			x = (x & 0x33333333) + ((x >> 2) & 0x33333333);
			x = (x + (x >> 4)) & 0x0F0F0F0F;
			x = x + (x >> 8);
			x = x + (x >> 16);
			return x & 0x0000003F;
			}
			***/
			
			// 64 bit java version of the C function from above
			x = x - ((Number.URShift(x, 1)) & 0x5555555555555555L);
			x = (x & 0x3333333333333333L) + ((Number.URShift(x, 2)) & 0x3333333333333333L);
			x = (x + (Number.URShift(x, 4))) & 0x0F0F0F0F0F0F0F0FL;
			x = x + (Number.URShift(x, 8));
			x = x + (Number.URShift(x, 16));
			x = x + (Number.URShift(x, 32));
			return ((int) x) & 0x7F;
		}