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的几次幂来做,可能效率高些。 如果数据很大,第二种方法应该更有效(比如几十亿,几百亿)