递归:多种方法实现进制转换,实现系统原函数_itoa()
2015-08-07 22:51
429 查看
实现方式一:
void to_2(int num) { if (!num) { return 0; } else { to_2(num / 2); printf("%d ", num % 2); } } void to_8(int num) { if (!num) { return 0; } else { to_8(num / 8); printf("%0x ", num % 8); } } void to_16(int num) { if (!num) { return 0; } else { to_16(num / 16); printf("%x ", num % 16); } } void main() { int num; scanf("%d", &num); printf("%d的二进制数:", num); to_2(num); printf("\n%d的八进制数:", num); to_8(num); printf("\n%d的十六进制数:", num); to_16(num); system("pause"); }
测试结果:
<img src="https://img-blog.csdn.net/20150807225141342?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
-----------------------------------------------------------------
实现方式二:
void to2str(int num, int i, char str2[33]) { if (!num) { return 0; } else { to2str(num / 2, i + 1, str2); str2[i] = (num % 2) + '0'; } } void to8str(int num, int i, char str8[33]) { if (!num) { return 0; } else { to8str(num / 8, i + 1, str8); str8[i] = (num % 8) + '0'; } } void to16str(int num, int i, char str16[33]) { if (!num) { return 0; } else { to16str(num / 16, i + 1, str16);//位数向前 if (num % 16 < 10) { str16[i] = (num % 16) + '0';//字符整数的转换 } else { //10 11 12 13 14 15 str16[i] = (num % 16) - 10 + 'A'; } } } //十进制转二、八、十六进制 void main() { char str2[33] = { 0 }; char str8[33] = { 0 }; char str16[33] = { 0 }; printf("请输入要转换的十进制数:"); int num = 0; scanf("%d", &num); to2str(num, 0, str2); _strrev(str2);//字符串逆转 printf("二进制数输出:%s\n", str2); to8str(num, 0, str8); _strrev(str8); printf("八进制数输出:%s\n", str8); to16str(num, 0, str16); _strrev(str16); printf("十六进制数输出:%s\n", str16); system("pause"); }
相关文章推荐
- volatile、ThreadLocal、synchronized等3个关键字区别
- 1371 - Period
- python select模块实现并发
- Java集合和数组的排序方式总结
- HDU 4283 - You Are the One(区间DP)
- Java 插件工程开发的概念
- 第79讲:单例深入讲解及单例背后的链式表达式学习笔记
- Codeforces E. President and Roads (优先队列Dijkstar + 强连通 找必最短路上的必须边(桥))经典
- JavaEE 新玩法
- Convolutional-Neural-Network (CNN)框架详解
- Odoo(OpenERP)开发实践:数据模型学习
- EF 保证线程内唯一 上下文的创建
- DispatcherServlet的介绍
- 黑马程序员——————java基础之Io二
- 推荐!国外程序员整理的机器学习资源大全
- 浅析Java中的final关键字
- Spring 面向切面编程AOP
- taobao 登录功能代码 淘宝
- jquery each
- mysqli 启动出错