十进制转化为二进制c语言(C语言中怎样调用函数将十进制转换成二进制) |
您所在的位置:网站首页 › lf求和 › 十进制转化为二进制c语言(C语言中怎样调用函数将十进制转换成二进制) |
本文目录C语言中怎样调用函数将十进制转换成二进制如何将C语言十进制小数转化为二进制求十进制转换二进制C语言代码c语言编程,将十进制整数转化为二进制c语言十进制小数转为二进制c语言怎么将十进制转化成二进制c语言十进制小数转为二进制C语言中怎样调用函数将十进制转换成二进制 1、打开visualC++6.0-文件-新建-文件-C++SourceFile。 2、输入预处理命令和主函数: #include《stdio.h》 /*输入输出头文件*/ voidmain()/*空类型:主函数*/ 3、定义变量和数组的数据类型并输入一个十进制: intb,x,k,r,i;/*定义变量和数组的数据类型为整型*/ printf(“输入一个十进制:“);/*输出文字提示*/ scanf(“%d“,&x); /*输入一个十进制数字*/ k=-1;/*将-1赋给k*/ 4、用除R取余倒计法将十进制的数转化成二进制的数: do/*用循环将十进制的数转化成二进制的数*/ { r=x%2;/*用除R取余倒计法计算二进制*/ b=r;/*将值赋给数组*/ x/=2;/*将原数除2*/ }while(x》=1); 5、输出结果: for(i=k;i》=0;i--) /*将上面倒计的数正回来*/ printf(“%d“,b);/*输出结果*/ printf(“\n“); 6、完整的源代码: #include《stdio.h》 /*输入输出头文件*/ voidmain()/*空类型:主函数*/ { intb,x,k,r,i;/*定义变量和数组的数据类型为整型*/ printf(“输入一个十进制:“);/*输出文字提示*/ scanf(“%d“,&x); /*输入一个十进制数字*/ k=-1;/*将-1赋给k*/ do/*用循环将十进制的数转化成二进制的数*/ { r=x%2;/*用除R取余倒计法计算二进制*/ b=r;/*将值赋给数组*/ x/=2;/*将原数除2*/ }while(x》=1); for(i=k;i》=0;i--) /*将上面倒计的数正回来*/ printf(“%d“,b);/*输出结果*/ printf(“\n“); } 如何将C语言十进制小数转化为二进制可以使用二乘取整法。 十进制数乘以10,小数点右移一位,3205.435*10=32054.35。 同理,二进制数乘以2,小数点右移一位,101101.1101*10=1011011.101(式子中都是二进制数)。 两个小数相同,表示法不同,但各自乘以2后,结果的整数部分和小数部分是相同的,基于此,十进制小数可用(小数部分)“2乘取整法”转换为二进制小数。 有限位数的十进制小数,转换成的二进制小数可能是无限位数的,这时可按要求的精度取有限位的结果即可,最后一位是其后面位“0舍1入”的结果。 C语言简介: C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。 尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。 求十进制转换二进制C语言代码求十进制转换二进制C语言代码代码如下: #include 《stdio.h》 #define NR (sizeof(int)*8) // 二进制位的个数 void deciToBin(int num); // 十进制转换为二进制函数声明 /* 主函数 */ int main(void) { int num; fprintf(stdout, “请输入一个正整数:“); /* 获取并检查用户输入 */ while (1) { if (fscanf(stdin, “%d“, &num) != 1) { fprintf(stderr, “输入错误!请重新输入:“); while (getchar() != ’\n’); // 去掉多余的非法字符 continue; } else if (num 《 0) // 输入的数不能为负数 { fprintf(stderr, “请输入错误!请输入正整数:“); continue; } else break; } fprintf(stdout, “对应二进制为:“); #if 1 /* 方法一: 不使用递归 */ char bitArr; int i = -1; /* 算法:栈的数学模型 */ do { i += 1; bitArr = num % 2; num /= 2; } while (num != 0); /* 逆序打印 */ for (i ; i 》= 0; i--) { fprintf(stdout, “%d“, bitArr); } fputc(’\n’, stdout); #else /* 方法二: 使用递归 */ if (num == 0) { fprintf(stdout, “0\n“); } else { deciToBin(num); // 调用第归函数 fputc(’\n’, stdout); } #endif return 0; } /* * @函数名:deciToBin * @函数功能:实现十进制转换为二进制 * @参数:需要转换的十进制整数 */ void deciToBin(int num) { /* 第归结束条件 */ if (num == 0) { return; } /* 第归调用 */ deciToBin(num/2); /* 逆序打印 */ fprintf(stdout, “%d“, num%2); } 扩展资料: 使用C语言编程实现任意进制数(2-16进制)转换为其他任意进制数(2-16进制)方法: #include《stdio.h》 #include《string.h》 #include《stdlib.h》 int TenNum(char a,int B); void Numchange(int m, int B); int TenNum(char a, int B) { int len, i, num; int sum = 0; len = strlen(a); for (i = 0; i 《 len; i++) { if (a 《= ’9’) num = a - ’0’; else if (a 《= ’F’) num = a - ’A’ + 10; sum = sum * B + num; } return sum; } void Numchange(int m, int B) { int n; if (m) { Numchange(m / B, B); n = m % B; if (n 《 10) printf(“%d“, n); else printf(“%c“, n + 55); } } int main() { int B, b; char a; printf(“请输入待转换数的进制(2-16):“); do { scanf_s(“%d“, &B); } while (B 《 2 && B 》 16); printf(“请输入待转换数:“); getchar(); gets_s(a); int m = TenNum(a, B); printf(“请输入需要转成几进制数(2-16):“); do { scanf_s(“%d“, &b); } while (B 《 2 && B 》 16); printf(“%d进制数%s转换为%d进制数的结果为:“,B,a,b); Numchange(m, b); printf(“\n“); system(“pause“); return 0; } c语言编程,将十进制整数转化为二进制首先需要明确十进制转为二进制的算法:将所需转化的数除以2,所得余数为k1,将所得商再除以2,所得余数为k2…...重复步骤直到商为0;读数时从最后一个余数读起,即kn,k(n-1)…k2,k1;所得数便是转化成的二进制数(除二取余法) c语言十进制小数转为二进制十进制小数转换成二进制小数采用“乘2取整,顺序排列“法。即小数部分连续的乘以R,保留每次相乘的整数部分。 具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数 部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。将得到的整数部分按照得到的顺序排流列即为小数部分。 然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。 扩展资料: 十进制整数转换为二进制整数的方法: 十进制整数转换为二进制整数采用“除2取余,逆序排列“法。 具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。 c语言怎么将十进制转化成二进制#include 《stdio.h》 void main() { //进制转换函数的声明 int transfer(int x); int x; printf(“请输入一个十进制数:“); scanf(“%d“,&x); printf(“转换成二进制数是:%d\n“,transfer(x)); } int transfer(int x) { int p=1,y=0,yushu; while(1) { yushu=x%2; x/=2; y+=yushu*p; p*=10; if(x《2) { y+=x*p; break; } } return y; } 扩展资料: (1)二进制转十进制 方法:“按权展开求和” 【例】: 规律:个位上的数字的次数是0,十位上的数字的次数是1,......,依次递增,而十分位的数字的次数是-1,百分位上数字的次数是-2,......,依次递减。 注意:不是任何一个十进制小数都能转换成有限位的二进制数。 (2)十进制转二进制 十进制整数转二进制数:“除以2取余,逆序排列”(除二取余法) 【例】: 89÷2 ??1 44÷2 ??0 22÷2 ??0 11÷2 ??1 5÷2 ??1 2÷2 ??0 1 十进制小数转二进制数:“乘以2取整,顺序排列”(乘2取整法) 参考资料: 百度百科-二进制 c语言十进制小数转为二进制#include<stdio.h> #defineN10 #defineM100 voidfun10_2_Z(longnumber)//十进制整数部分转二进制 { charch[M]; intlen=0; if(number==0) { printf("%d",number);//如果整数部分为零直接输出 } else { while(number) { ch[len++]=number%2; number=number/2; } for(;len>0;len--)//逆向输出 { printf("%d",ch[len-1]); } } } voidfun10_2_X(doublenumber)//十进制小数部分转二进制 { inti,len=0; intarry[N]; while(number) { inttemp=(int)(number*2); arry[len++]=temp; if(len==N) break;//控制小数点后不超过十位 number=2*number-temp; } printf("."); for(i=0;i<len;i++) { printf("%d",arry[i]); } } intmain() { doublenumber; scanf("%lf",&number); longt=(int)number;//整数部分 doublem=number-t;//小数部分 fun10_2_Z(t); fun10_2_X(m); return0; } 运行结果: 扩展资料:十进制整数转换为二进制整数 十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。 例、把173D转换为二进制数。 解: |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |