• 0

    消息 标记为已读

    没有消息

    查看全部
  • 登录/注册
  • 我的班级
  • 要统计一个int类型的值中有多少位为1,

    要统计一个int类型的值中有多少位为1,怎么写?

    楼主 Alex 来自 嵌入式 2016-06-24 17:12:49 6人参与讨论

    添加回答

    回答问题最高可获5M豆哦!

    最佳回答

    华清远见集团刘宗鑫
    #include int fun(int data); int main() { int a; int num; scanf("%d", &a); num = fun(a); printf("num = %d\n", num); return 0; } int fun(int data) { int i = 0, count = 0; int temp = 0; for(i = 0; i < 32; i++) { temp = data; temp = temp >> i; if((temp & 1) == 1) count++; } return count; }
    赞同(0) 引用 | 1楼 2016-06-29 回复

    被采纳为最佳答案

    全部回复

    seem

    引用@XAQ071000017

    首先通过数组保存,求出那些元素的十进制对应的二进制,在遍历二进制的每一位,然后用if判断那些值等于1,在用变量i记录值等于1的值,打印i的值即可;第二种方法通过移位操作,

    赞同(0) 引用 | 5楼 2019-11-12 回复
    seem

    引用@XAQ071000017

    首先通过数组保存,求出那些元素的十进制对应的二进制,在遍历二进制的每一位,然后用if判断那些值等于1,在用变量i记录值等于1的值,打印i的值即可;第二种方法通过移位操作,

    赞同(0) 引用 | 4楼 2019-11-12 回复
    SHQ170220003
    int num=0;while(a){ a=a&a(a-1); num++ ;} return num;网上看到的解法
    赞同(0) 引用 | 3楼 2017-03-15 回复
    XAQ071000017
    首先通过数组保存,求出那些元素的十进制对应的二进制,在遍历二进制的每一位,然后用if判断那些值等于1,在用变量i记录值等于1的值,打印i的值即可;第二种方法通过移位操作,也可以
    赞同(0) 引用 | 2楼 2016-08-01 回复
    手指头查!
    赞同(0) 引用 | 1楼 2016-06-29 回复

    我的回复

    发表成功 M豆+5

    每日可获得50M豆,免费兑换开发板

    点赞

    收藏

    二维码

    扫一扫,在手机上查看!

    所属分类 全部分类

    C语言

    4547人关注

    关注

    C语言是一门通用的,模块化,程序化的编程语言,被广泛应用于操作系统和应用软件的开发。

    Android开发

    2869人关注

    关注

    android开发是指android平台上应用的制作,它包括操作系统、用户界面和应用程序。

    相关课程

    热门问题

    C语言测试题

    18 回答 来自 嵌入式

    FS-MP1A--linnix 编程问题

    16 回答 来自 嵌入式