单片机十进制转二进制的程序

单片机十进制转二进制的程序,第1张

#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进制、如何将十进制数转换为二进制数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9453459.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存