标签:输入的数转化为二进制序列
★输入的数转化为二进制序列,并统计序列中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
标签:输入的数转化为二进制序列
原文地址:http://10738469.blog.51cto.com/10728469/1698928