16 lines
326 B
C
16 lines
326 B
C
#include <stdio.h>
|
|
|
|
/* Return 1 when x contains an odd number of 1s; 0 otherwise.
|
|
Assume w=32 */
|
|
int odd_ones(unsigned x) {
|
|
x = x ^ (x >> 16);
|
|
x = x ^ (x >> 8);
|
|
x = x ^ (x >> 4);
|
|
x = x ^ (x >> 2);
|
|
x = x ^ (x >> 1);
|
|
return x & 1;
|
|
}
|
|
|
|
int main() {
|
|
printf("%d %d\n", odd_ones(0xF1F1F0F1), odd_ones(0xFF00AAAA));
|
|
} |