Number of 1's in 64 bit number...[don't read if not interested in algos/math...]

kelley.r.cook@gm.com kelley.r.cook@gm.com
Thu Apr 25 10:08:00 GMT 2002


int count (long long x) {

int result;

result =
(x & 0x00000001 ? 1 : 0) +
(x & 0x00000002 ? 1 : 0) +
(x & 0x00000004 ? 1 : 0) +
(x & 0x00000008 ? 1 : 0) +
(x & 0x00000010 ? 1 : 0) +
(x & 0x00000020 ? 1 : 0) +
(x & 0x00000040 ? 1 : 0) +
(x & 0x00000080 ? 1 : 0) +
(x & 0x00000100 ? 1 : 0) +
(x & 0x00000200 ? 1 : 0) +
(x & 0x00000400 ? 1 : 0) +
(x & 0x00000800 ? 1 : 0) +
(x & 0x00001000 ? 1 : 0) +
(x & 0x00002000 ? 1 : 0) +
(x & 0x00004000 ? 1 : 0) +
(x & 0x00008000 ? 1 : 0) +
(x & 0x00010000 ? 1 : 0) +
(x & 0x00020000 ? 1 : 0) +
(x & 0x00040000 ? 1 : 0) +
(x & 0x00080000 ? 1 : 0) +
(x & 0x00100000 ? 1 : 0) +
(x & 0x00200000 ? 1 : 0) +
(x & 0x00400000 ? 1 : 0) +
(x & 0x00800000 ? 1 : 0) +
(x & 0x01000000 ? 1 : 0) +
(x & 0x02000000 ? 1 : 0) +
(x & 0x04000000 ? 1 : 0) +
(x & 0x08000000 ? 1 : 0) +
(x & 0x10000000 ? 1 : 0) +
(x & 0x20000000 ? 1 : 0) +
(x & 0x40000000 ? 1 : 0) +
(x & 0x80000000 ? 1 : 0);
return result;
}



More information about the Gcc-help mailing list