码迷,mamicode.com
首页 > 其他好文 > 详细

输入的数转化为二进制序列,并统计序列中1的个数

时间:2015-09-29 01:26:17      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:输入的数转化为二进制序列

★输入的数转化为二进制序列,并统计序列中1的个数

描述:普通的模除取余后数直接除二的办法易于理解,但是对于输入的数只限于正数和零,对于负数则不适应,所以采用与后移位的方法以此来扩大数的输入范围。

#include<stdio.h>
int main()
{
int m,b,c,i;
int count = 0;
char a[32];
printf("请输入一个数:\n");
scanf("%d", &m);
for (i = 0; i < 32; i++)
{
if (m & 1 == 1)
{
count++;
}
c = m & 1;        //与0001相与,同1反0,取得余数,相当于模除(%)的效果
b = m >> 1;        //序列整体向右移一位,相当于(/2)的效果
m = b;
a[i] = c;
}
printf("该数的二进制序列为:\n");
for (i = 31; i >= 0; i--)
printf("%d", a[i]);
printf("\n");
printf("该序列中1的个数为:\n");
printf("count=%d", count);
printf("\n");
return 0;
}

技术分享

本文出自 “温暖的微笑” 博客,请务必保留此出处http://10738469.blog.51cto.com/10728469/1698928

输入的数转化为二进制序列,并统计序列中1的个数

标签:输入的数转化为二进制序列

原文地址:http://10738469.blog.51cto.com/10728469/1698928

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!