ÉèΪÊ×Ò³ ¼ÓÈëÊÕ²Ø

TOP

UCУ԰ÕÐƸC++¹¤³Ìʦ±ÊÊÔÌâ
2014-11-24 01:34:56 ¡¾´ó ÖРС¡¿ ä¯ÀÀ:1679´Î
Tags£ºÐ£Ô°ÕÐƸ ¹¤³Ìʦ ÊÔÌâ

ÒªÇó¸ù¾Ý´úÂë·ÖÎö´úÂëµÄ¹¦ÄÜ£º
unsigned int CountOne(unsigned int x){
x = (x & 0¡Á55555555) + (x >> 1 & 0¡Á55555555);
x = (x & 0¡Á33333333) + (x >> 2 & 0¡Á33333333);
x = (x & 0x0f0f0f0f) + (x >> 4 & 0x0f0f0f0f);
x = (x & 0x00ff00ff) + (x >> 8 & 0x00ff00ff);
x = (x & 0x0000ffff) + (x >> 16 & 0x0000ffff);
return x;
}
¾ÍÕâô¶à¡£
¾­¹ý¼ìÑ飬ÕâÊǼìÑéµÄ´úÂ룺
#include
using namespace std;
unsigned int CountOne(unsigned int x);
int main(){
unsigned int x;
cout<<¡±Input a num and will return the count of one:¡±< cout<<¡±(like input 211,and result:5)¡±< cin>>x;
cout<<¡±result:¡±< cout< return 0;
}
unsigned int CountOne(unsigned int x){
x = (x & 0¡Á55555555) + (x >> 1 & 0¡Á55555555);
x = (x & 0¡Á33333333) + (x >> 2 & 0¡Á33333333);
x = (x & 0x0f0f0f0f) + (x >> 4 & 0x0f0f0f0f);
x = (x & 0x00ff00ff) + (x >> 8 & 0x00ff00ff);
x = (x & 0x0000ffff) + (x >> 16 & 0x0000ffff);
return x;
}
¸Ãº¯Êý¾ÍÊǼÆËãÒ»¸ö32λÎÞ·ûºÅÕûÊýÖк¬ÓÐ1µÄ¸öÊý£¬¾Í5ÐдúÂë¡£


¡¾´ó ÖРС¡¿¡¾´òÓ¡¡¿ ¡¾·±Ìå¡¿¡¾Í¶¸å¡¿¡¾Êղء¿ ¡¾ÍƼö¡¿¡¾¾Ù±¨¡¿¡¾ÆÀÂÛ¡¿ ¡¾¹Ø±Õ¡¿ ¡¾·µ»Ø¶¥²¿¡¿
ÉÏһƪ£ºÒ»¸öÈý²ãµÄÓ¦ÓóÌÐòͨ³£ÓУº±íÏÖ.. ÏÂһƪ£º.NETÃæÊÔÌâ´óÈ« ³õ¼¶³ÌÐòÔ± Öм¶..

×îÐÂÎÄÕÂ

ÈÈÃÅÎÄÕÂ

Hot ÎÄÕÂ

Python

C ÓïÑÔ

C++»ù´¡

´óÊý¾Ý»ù´¡

linux±à³Ì»ù´¡

C/C++ÃæÊÔÌâÄ¿