用c语言写程序,可以求出数二进制表示中有多少个

2020-11-23 11:10:55 字数 3789 阅读 1155

1楼:blue丶小

dev-cpp 5.4 c通过编译,输入一个10进制转换成2进制,并统计有几个0

#include

intmain()

char*s=a,*e=&a[i-1],t;

while(e>s)

intn,sum=0;

for(n=0;n

2楼:泰山

#include"stdio.h"

#include"stdlib.h"

main()

printf("%d",count);}

如何用c语言计算一个整数二进制包含多少0

3楼:匿名用户

c语言中没有 “二进制数”这种类型,实际上在程序当中,一切内容都是以二进制保存的。但是没有办法直接定义二进制数,只有8,10,16进制可以直接用来定义。

c语言中的数据基本类型包括:char short int long float double . 用哪种类型定义的就叫xx类型变量,如字符型变量,整型变量,浮点型变量。

各种变量中存储的数据,都是以二进制进行存储的。因类型的不同,采用的二进制编译格式不同。如:整形类都是用补码存储,浮点型采用ieee754标准存储。

对于int a=0x1a ; int b=0101 ;这种变量初始化中,a,b依然是整形变量,0x1a这种以0x开头的数据表示16进制常数(或称常量),0101这种以0开头的数字表示8进制常数。但程序设计中并没有规定二进制常数的表示形式,如果需要使用的话,可以采用字符数组来存储二进制数,如:

char a[100] = "10100101" ;

需要运算时,再通过自定义函数将字符串转换成整数。

输入一个c语言程序,能把一个十进制的数转换成二进制的数。用子函数主函数来编写,跪求大神 10

4楼:匿名用户

原理:和十进制的数除以2,将商暂存起来,余数按字符串排列起来。再用商除以2,再将余数按字条串排列起来。如此循环。最终得到的那个余字符串就是二进制数了。

5楼:兄弟连教育北京总校

#include

#include

#define n 16

int main(int argc, char *argv)for(j=0;j

printf("\n");

system("pause");

return 0;}

怎用c语言求一个数的二进制

6楼:匿名用户

//递归函数 希望你能看的懂。其它什么合法性检验,喇叭什么的就自己搞定吧。

#include

void printbin(int n)

int main(int argc,char *argv)

7楼:匿名用户

用栈实现,用520除2把所得余数进栈,把商作为新的

数除2,再把余数进栈,取商为新的数,如此往复直到商为1为止,然后把栈中的数依次输出后的1、0组合即为所求数的二进制数。

具体的**不便粘贴,有兴趣欢迎交流

8楼:匿名用户

#include "stdio.h"

void dec2bin(int dec, char *s)i--;

for(;i>=0;i--)

s[j]='\0';

}main()

else

i++;

sleep(1);

}sound(20);

getch();

}静音没做到……

为了明显,两个声音之间间隔1秒。

编写一个程序计算二进制1的个数

9楼:匿名用户

你这应该是要求用汇编写吧。是汇编习题吧

如果是用c写就很简单了。

void calculateones(int data)data = (data>>1);

}printf("%x", count);

}int main()

用c语言编一个程序,使给出一个数的原码,求得反码,补码。

10楼:匿名用户

#include

int main()

j = i-1;

ab[0] = af[0] = a[0];//符号位始终不变if(a[0] == 1)

}k = i;

for(; i > 0; i--)

af[i] = 1 - a[i];

for(i = k; i > 0; i--)//补码从末位数起第一个不为0,以后均取反

ab[i] = 1 - a[i];

}else

}printf("对应的反码是:\n");

for(i = 0; i <= j; i++)printf("%d", af[i]);

printf("\n");

printf("对应的补码是:\n");

for(i = 0; i <= j; i++)printf("%d", ab[i]);

}在vc下编译测试通过。另,本**未考虑输入非法问题,所输入的数字智能由1和0组成

c语言位运算 求1个整数的二进制数有多少个1

11楼:黑色的夢

#include

intsolve(intn)

intmain()

第一种方法:简单的运算一个整数中二进制中1的个数,位运算用了&和》符号,即与和右移。时间复杂度为log2(n)。

#include

intsolve(intn)

intmain()

第二种方法:通过不断的去掉二进制中最右端的1,来计算整数二进制中1的个数,时间复杂度和二进制中1的个数有关。

求一个c语言程序,要求输入一个字符输出他二进制含有多少个1

12楼:天选之徒啊

移位操作。。

if((temp>>i)&0x01)

大概思路就是这样的

c语言 将输入的数表示成二进制,并统计其中1的个数

13楼:冰是沉默的水

#include

#include

int main()

for(j=0;j个数

if(b[j]==1)

k++;

printf("%d",k);

getch();

}刚写的,符合你要求吧?

14楼:匿名用户

#include

int main()

for(j=0;j数

if(b[j]==1)

k++;

printf("%d\n",k);//1的总数for(j=0;j输出的二进制数

}希望对你有帮助

15楼:进荫郁千山

最直接的方法

(简单的int型):

intn,sum;

sum=

0;scanf("%d",&n);

for(inti=

0;i<

sizeof(int)*8;++

i)if(n&

1<然你也可以通过2的几次幂来做,可能效率高些。

如果数据很大,第二种方法应该更有效(比如几十亿,几百亿)