返回整数中为1的位数

转载 2006年06月20日 23:24:00
原题:

  Write the function int bitCount(short input) that takes a short as input and
  returns an int.  The function returns the number of bits set in the input
  variable.  For instance:
  bitCount(7) --> 3
  bitCount(2543) --> 9
  bitCount(11111) --> 9

代码:

/********************************************************************
    created:    2006/06/14
    created:    14:6:2006   16:53
    filename:   C:/Documents and Settings/Administrator/My Documents/近期阅读/myTinyThing/bitCount.c
    file path:  C:/Documents and Settings/Administrator/My Documents/近期阅读/myTinyThing
    file base:  bitCount
    file ext:   c
    author:     A.TNG
    version:    0.0.1
   
    purpose:    面试题
                Write the function int bitCount(short input) that takes a short as input and
                returns an int.  The function returns the number of bits set in the input
                variable.  For instance:
                bitCount(7) --> 3
                bitCount(2543) --> 9
                bitCount(11111) --> 9
*********************************************************************/
#include <stdio.h>

/*
 *  name: bitCount
 *  params:
 *    input         [in]        需要分析的 short 型数
 *  return:
 *    输入参数 input 的为1的位数
 *  notes:
 *    计算 input 中为1的位数
 *  author: A.TNG 2006/06/14 17:00
 */
int bitCount(short input)
{
    int n_ret   = 0;

    /* 只要 input 不为0,则循环判断 */
    while (0 != input)
    {
        /* 如果 input & 1 == 1 则表示最低位为1,反之则等于0 */
        if (input & 1)
        {
            n_ret++;
        }
        input = input >> 1;
    }

    return n_ret;
}

/*
 *  name: main
 *  params:
 *    none
 *  return:
 *    函数返回状态给系统
 *  notes:
 *    系统 main 函数
 *  author: A.TNG 2006/06/14 17:04
 */
int main()
{
    /* 输入需要计算的整数 */
    int n   = 2543;

    /* 输出 bitCount 的结果 */
    printf("%d/n", bitCount((short) n));

    /* 发送 PAUSE 命令给系统 */
    system("PAUSE");
}

【leetcode】——从两个有序数组中寻找他们并集的第k小元素

题目题目:There are two sorted arrays A and B of size m and n respectively. Find the median of the two so...
  • peach90
  • peach90
  • 2015年05月09日 11:17
  • 1271

从键盘输入一个整数(1~20) 则以该数字为矩阵的大小,把1,2,3…n*n 的数字按照顺时针螺旋的形式填入其中。

/* * 从键盘输入一个整数(1~20) 则以该数字为矩阵的大小,把1,2,3…n*n 的数字按照顺时针螺旋的形式填入其中。例如: 输入数字2,则程序输出: 1 2 4 3 输入数字3,则...
  • hanshileiai
  • hanshileiai
  • 2013年04月02日 21:11
  • 8084

计算int 型数值在内存中二进制1的个数

今天在华为OJ上遇到这么一个题目,很简单,但是却总是得不到最好的成绩记录。因此比较了自己的程序、思路与别人的异同,发现还是有很大区别的,遂记录如下。 题目—— 输入一个int型整数,求该整数的二进...
  • linfeng24
  • linfeng24
  • 2014年06月24日 23:52
  • 1929

输入一个正整数n,返回一个最小正整数m(m至少是2位数),使得m的各位乘积等于n,例如输入36,输出49,输入100,输出455,对于某个n不存在这样的m,请返回-1。

输入一个正整数n,返回一个最小正整数m(m至少是2位数),使得m的各位乘积等于n,例如输入36,输出49,输入100,输出455,对于某个n不存在这样的m,请返回-1。 package hope201...
  • u014657292
  • u014657292
  • 2014年11月01日 13:33
  • 1223

Java:多重循环for、while、do-while(简单判断是否是四位整数、1-100累加,水仙花、最大公约数。最小公倍数、完数、输入任意数计算每位数之和、弹力球问题)

package jereh1; import java.util.Scanner; public class Class3Xunhuan { public static void main(St...
  • j_a_v_a_guan
  • j_a_v_a_guan
  • 2015年08月16日 20:56
  • 1894

11 算术运算符与算术表达式的项目(1 分离各位数) (2分离整数和小数部分) (3如何买玫瑰) (4玩数字) (5坐标转换)

/*【项目1-分离各位数】 写一个程序,输入x(三位数),输出其个、十、百位数,用空格隔开 样例输入:768 样例输出:8 6 7*/ #include int main() { in...
  • PrayToGod2016
  • PrayToGod2016
  • 2016年03月28日 00:47
  • 361

求给定正整数的位数以及各位

  • 2011年09月25日 14:57
  • 1KB
  • 下载

任意位数整数加法

  • 2015年07月05日 15:29
  • 2KB
  • 下载

判断一个整数的位数(c++简单例子)

  • 2013年06月26日 16:56
  • 258B
  • 下载

大整数相加,每个位数小于128

得分40, 是不是因为必须有一个空格的事儿? #include #include #define MAX_SIZE 4000 int isNum(int c) { ...
  • wlzsddx
  • wlzsddx
  • 2015年03月19日 13:45
  • 324
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:返回整数中为1的位数
举报原因:
原因补充:

(最多只允许输入30个字)