十进制转其他进制
(该程序以十转二为例)
#include<stdio.h> void change(int n)//利用递归将每次的余数倒序输出即为二进制数 { if (n > 0) { change(n / 2);//十转其他进制只需将2改为其他数字即可 printf("%d", n % 2); } } int main() { int n; scanf("%d", &n); change(n); return 0; }
其他进制转十进制
二进制转十进制
int main() { int d = 0; char ch = { 0 }; while (ch = getchar(), ch != '\n') { d = d * 2 + ch - '0';//将二进制数的每一位视为字符进行转化,输入回车停止 } printf("%d", d); return 0; }
八进制转十进制
八进制转十进制与二进制转十进制类似 只需更改一行代码
d=d*8+ch’0’;
十六进制转十进制
#include<stdio.h> int tran(char ch)//因为十六进制中有了字母代替数字,所以需要调用函数将值转化后返回 { if (ch >= '0' && ch <= '9') return ch - '0'; else if (ch >= 'A' && ch <= 'F') return 10 + ch - 'A'; else//此处为输入是小写的情况 return 10 + ch - 'a'; } int main() { int d = 0; char ch = { 0 }; while (ch = getchar(), ch != '\n') { d = d * 16 + tran(ch); } printf("%d", d); return 0; }