#include<stdioh>
#define MAX 32
int main(void)
{
int i=0,n,a[MAX];
printf("请输入一个十进制整数:\n");
scanf("%d",&n);
while (n>0) //循环过程的始终,判断n是否能被2除尽
{
a[i] = n%2; //用数组存储每次除以2之后的余数,即断定奇偶性,对应二进制位上数值
i = i+1;
n = n/2;
}
printf("十进制整数转换为二进制数是:\n");
for(; i > 0; i--)
printf("%d",a[i-1]);
printf("\n");
return 0;
}
顺便把其他进制转换也给你吧。
void
fun_1(int
n)
{
if(n<2)
cout<<n;
if(n>=2)
{
fun_1(n/2);
cout<<n%2;
}
}
//十进制数字转换成八进制数字
void
fun_2(int
n)
{
if(n<8)
cout<<n;
if(n>=8)
{
fun_2(n/8);
cout<<n%8;
}
}
//十进制数转换成十六进制数字
void
fun_3(int
n)
{
switch(n)
{
case
10:
cout<<"A";
break;
case
11:
cout<<"B";
break;
case
12:
cout<<"C";
break;
case
13:
cout<<"D";
break;
case
14:
cout<<"E";
break;
case
15:
cout<<"F";
break;
default:
cout<<n;
}
}
void
fun_4(int
n)
{
if(n<16)
fun_3(n);
if(n>=16)
{
fun_4(n/16);
fun_3(n%16);
}
}
//主函数
void
main()
{
int
n;
cout<<"请输入n的值:
"<<endl;
cin>>n;
cout<<"十进制数字转换成二进制,八进制,十六进制数字结果如下:"<<endl;
fun_1(n);
cout<<endl;
//输出结果换行
fun_2(n);
cout<<endl;
fun_4(n);
cout<<endl;
}
先说二进制转十进制
例如:1010,这个数字一共四位那么转换成十进制就是(第一个数字)2^(位数-1次方)+(第二个数字)2^(位数-1次方)+(第三个数字)2^(位数-1次方)+(第四个数字)2^(位数-1次方)也就是12^3+02^2+12^1+02^0=8+0+2+0=10
十进制转二进制
把数字10转二进制
10/2
商5余0
二进制的最后一位就是0
xxx05(上面的商)/2
商2余1
二进制的倒数第二位1
xx102(上面的商)/2
商1余0
二进制的倒数第三位0
x010当最后的商位1的时候就不再除了,1就是二进制的第一位
1010
以上就是关于单片机十进制转二进制的程序全部的内容,包括:单片机十进制转二进制的程序、C语言进制转换10进制转2进制、如何将十进制数转换为二进制数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)