据说是一道面试题。有一个16位的整数,每4位为一个数,写函数求他们的和。例如整数为1101010110110111时,和为1101+0101+1011+0111。
我的源码:
char SumOfQuarters(unsigned short n)
{
char c = 0;
int i = 4;
do
{
c += n & 15;
n = n >> 4;
} while (--i);
return c;
}
返回值用char是因为8位就足够装下这样的数了。