如何用一个程序实现2进制 8进制 16进制 转化为10进制

2024年11月19日 20:35
有1个网友回答
网友(1):

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进制结果。