8进制,16进制较简单,用读语句即可解决
int i;
scanf("%o",&i); -- 读入8进制
scanf("%x",&i); -- 读入16进制
printf("%d ",i) -- 输出10进制结果。
2进制麻烦,按字符串读入:
int i,j;
char str[8];
scanf("%s",&str[0]);
j = strlen(str); 测定字符串长度。
i = 0; 累加器
查一位一位字符,
最左一位是1,则 i = i 加 2 的 (j-1) 次方
最左二位是1,则 i = i 加 2 的 (j-2) 次方
.. 直到j 位 i = i 加 2 的 0 次方
printf("%d ",i) -- 输出10进制结果。