读书人

二进制转化作十进制

发布时间: 2013-01-06 15:44:47 作者: rapoo

二进制转化为十进制
例如 1101.01怎么转化为十进制的?
[解决办法]
小数左边, 是2的N次方来转换.
小数右边是按. 1除2的N次方来转换

1101.01 = 1*2^3 + 1*2^2 + 0*2^1 + 1*2^0 + 0*(1/(2^1)) + 1*(1/(2^2)
= 1*8 + 1*4 + 0*2 + 1*1 + 0*0.5 + 1*0.25
= 8 + 4 + 0 + 1 + 0 + 0.25
= 13.25
[解决办法]
1101 = 1*2^3 + 1*2^2 + 0*2^1 + 1*2^0
0.01 = 0*2^-1 + 1*2^-2

所以最后结果为13.25
[解决办法]
重新发一下吧

#include “stdio.h”
#define base 2 /*这里你可以转换任何进制的数,这里是2进制*/
int main()
{int n;int str[1000];int i,j;
while(scanf("%d",&n)!=EOF){
i=0;
while(n)
{str[i]=n%base;
i++;
n=n/base;}
if(i==0)
printf("0");
for(j=i-1;j>=0;j--)
printf("%d",str[j]);printf("\n");
}
}

读书人网 >C++

热点推荐