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