C语言,十进制数转化为二进制数?
方法一
#include<stdio.h>
int main(void)
{
int i=0,n,a[32];
printf("请输入一个十进制整数.\n");
scanf("%d",&n);
while (n>0)
{
a[i]=n%2;
i=i+1;
n=n/2;
}
printf("十进制整数转换为二进制数是:\n");
for(i--;i>=0;i--)
printf("%d",a[i]);
printf("\n");
return 0;
}
方法二
#include "stdio.h"
int main()
{
int a,r,i=0,j=1,count[100]; //输入的是a
printf("请输入一个十进制整数:\n");
scanf("%d",&a);
do //循环,直到a等于0跳出
{
r=a%2; //求每一次的余数,实际上最后输出的也是这个
a=a/2;
i++;
count[i]=r;
}
while(a!=0);
printf("十进制整数转换为二进制数是:\n");
for(j=i;j>0;j--) //这里是倒序输出
printf("%d",count[j]);
}
二进制数1100111换成十进制数?
结果是103。
二进制中只有0.1两个数码。非十进制转十进制之前需要知道一个量,即位权。也就是不同位置上数码的权重或者权值不一样。举个例子,十进制数111。个十百位上的1数量级不一样,可以表示为以10为底的幂次方,从最右边开始分别为0.1.2.3…。二进制中把底数换为2即可。
那么,非十进制转十进制的方法为按权展开求和。所以题目可以写为1*2^6+1*2^5+…+1*2^0=103。
C语言:将输入的十进制正整数n转换为二进制数,并将转换结果输出,转换方法采用“除2取余”?
1、打开visual C++ 6.0-文件-新建-文件-C++ Source File。
2、定义变量和数组:#include
char a[100]。
3、 输入字符: printf("请输入字符:\n"); gets(a); /*输入n进制数存到数组a中*/strupr(a); /*将a中的小写字母转换成大写字母*/t3 = strlen(a); /*求出数组a的长度*/t1 = 0; /*为t1赋初值0*/。
4、输入进制: printf("请输入n(2or8or16):\n");scanf("%d", &n); /*输入进制数*/。
5、输出最后的结果。

