单片机c语言问题

来源:百度知道 编辑:UC知道 时间:2024/05/21 11:01:10
如何将一个二进制数,比如11111110,转化为十进制数254?最好把程序写一下,我想把这个十进制数送给数码管显示

int BinaryToDecimal(char bin[],int len)
{
int result = 0;
char *p;
while ( *p != '\0')
{
result = (result << 1)+( *p - '0' );
p += 1;
}
return( result );
}

char bin[]是诸如"11111110" 这样的字符串,返回的就是结果

用%d 打印出来不就可以了!

原来二进制的数据类型是什么,如果是char类型的不必转,直接显示就可以了。

如:
unsigned char a; //定义一个变量a来保存二进制数
num[]={.......};//这是你的数码管编码表
a=11111110; //把a的值赋给变量a
//数码管显示口如果是P1接段则
P1=num[a]; //把num[a]送到P1数码管显示

完成程序.

比如在一个字节中是二进制数11111110B=254,现在需要转换为3个字节的数字存储在3个字节中,分别为2,5,4。你的是这个意思吧?

比如说254,这样运算:

254÷100=2……54
54÷10=5……4

所以在程序中就这样