C语言中将二进制转换成十进制
介绍:项目开发中需要用到将二进制转换成十进制之后进行运算,所以自己写了一个转换函数。
代码:
/* *function:将二进制数据转换为十进制 * *value:表示待转换的二进制数据 *num :表示二进制位数 * */
float Bintodec(long value,int num)
{
float sum = 0.0;
int sum_num = 1;
int ix = 0,iy = 0;
for(ix = 0;ix < num - 1; ++ix)
{
if((value >> ix) & 0x00000001)
{
if(ix == 0)
{
sum_num = 1;
}
else
{
for(iy = 0;iy < ix;++iy)
{
sum_num *= 2;
}
}
sum += sum_num;
sum_num = 1;
}
}
return sum;
}
**总结:**实际上就是将二进制的值循环左移,之后判断对应位置上是否为1,若为1则加权,不断进行累加,之后就可以得到二进制转十进制的值了。