算法问题总是很复杂,我每次都觉得会了,每次一到稍微涉及一点儿算法的地方都要想好久。
以下 10进制转换成2进制:
#includevoid tenToB(int a);void packageForT2B(int a);int main() { packageForT2B(13); packageForT2B(6); return 0;}void packageForT2B(int a){ printf("输入的十进制数字是%d,它的二进制形式是:\n",a); tenToB(a); printf("\n");}void tenToB(int a){ int rest=a%2; if(a/2>2){ tenToB(a/2); }else{ printf("%d",a%2); } printf("%d",rest);}
10进制转化成16进制。
示例代码:
#includevoid tenToHex(int a);void function1(void);void packageForT2H(int a);int main() { //function1 packageForT2H(100); packageForT2H(239); return 0;}void function1(void){ char str[]={ "0123456789ABCDEF"}; printf("%c",str[15]); printf("%c",str[8]); printf("%c",str[1]);}void packageForT2H(int a){ printf("输入的十进制数字是%d,它的16进制形式是:\n",a); tenToHex(a); printf("\n"); }void tenToHex(int a){ char str[]={ "0123456789ABCDEF"}; int rest=a%16; if(a/16>16) { tenToHex(a/16); } else{ printf("%c",str[a/16]); } printf("%c",str[a%16]); }
运行结果: