#include <stdio.h>
int bit_count(int x)
{
int retVal;
int fives;
fives = 0x55;
fives |= fives << 0x08;
fives |= fives << 0x10;
int threes;
threes = 0x33;
threes |= threes << 0x08;
threes |= threes << 0x10;
int ofs;
ofs = 0x0f;
ofs |= ofs << 0x08;
ofs |= ofs << 0x10;
int ooffs;
ooffs = 0xff;
ooffs |= ooffs << 0x10;
int ffff;
ffff = 0xff;
ffff |= ffff << 0x08;
retVal = x;
retVal = ( retVal & fives ) + ( retVal >> 0x01 & fives );
retVal = ( retVal & threes ) + ( retVal >> 0x02 & threes );
retVal = ( retVal & ofs ) + ( retVal >> 0x04 & ofs );
retVal = ( retVal & ooffs ) + ( retVal >> 0x08 & ooffs );
retVal = ( retVal & ffff ) + ( retVal >> 0x10 & ffff );
return retVal;
}
int main(void)
{
printf("%d\n", bit_count
(0b11110000111100001111000011110000));
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgYml0X2NvdW50KGludCB4KQp7CglpbnQgcmV0VmFsOwoKCWludCBmaXZlczsKCWZpdmVzID0gMHg1NTsKCWZpdmVzIHw9IGZpdmVzIDw8IDB4MDg7CglmaXZlcyB8PSBmaXZlcyA8PCAweDEwOwoKCWludCB0aHJlZXM7Cgl0aHJlZXMgPSAweDMzOwoJdGhyZWVzIHw9IHRocmVlcyA8PCAweDA4OwoJdGhyZWVzIHw9IHRocmVlcyA8PCAweDEwOwoKCWludCBvZnM7CglvZnMgPSAweDBmOwoJb2ZzIHw9IG9mcyA8PCAweDA4OwoJb2ZzIHw9IG9mcyA8PCAweDEwOwoKCWludCBvb2ZmczsKCW9vZmZzID0gMHhmZjsKCW9vZmZzIHw9IG9vZmZzIDw8IDB4MTA7CgoJaW50IGZmZmY7CglmZmZmID0gMHhmZjsKCWZmZmYgfD0gZmZmZiA8PCAweDA4OwoKCXJldFZhbCA9IHg7CglyZXRWYWwgPSAoIHJldFZhbCAmIGZpdmVzICkgKyAoIHJldFZhbCA+PiAweDAxICYgZml2ZXMgKTsKCXJldFZhbCA9ICggcmV0VmFsICYgdGhyZWVzICkgKyAoIHJldFZhbCA+PiAweDAyICYgdGhyZWVzICk7CglyZXRWYWwgPSAoIHJldFZhbCAmIG9mcyApICsgKCByZXRWYWwgPj4gMHgwNCAmIG9mcyApOwoJcmV0VmFsID0gKCByZXRWYWwgJiBvb2ZmcyApICsgKCByZXRWYWwgPj4gMHgwOCAmIG9vZmZzICk7CglyZXRWYWwgPSAoIHJldFZhbCAmIGZmZmYgKSArICggcmV0VmFsID4+IDB4MTAgJiBmZmZmICk7CgoJcmV0dXJuIHJldFZhbDsKfQoKaW50IG1haW4odm9pZCkKewoJcHJpbnRmKCIlZFxuIiwgYml0X2NvdW50KDBiMTExMTAwMDAxMTExMDAwMDExMTEwMDAwMTExMTAwMDApKTsKCglyZXR1cm4gMDsKfQ==