栈的应用-进制转换
来源:互联网 发布:机顶盒网络灯红色 编辑:程序博客网 时间:2024/04/29 19:34
使用栈来实现进制转换,栈的实现可以参考前面的.
// 数字转换为字符int number_to_char(char n){ if (n < 10) // [0-9] -> ['0'-'9'] { n += '0'; } else if (n < 17)// [10-16] -> ['A'-'F'] { n += 55; } return n;}// 进制转换// 先把最低位依次入站,则栈顶就是最高位// 然后所有元素都出栈就可以了int conversion(int n, int base, char *buffer, size_t size){ assert(buffer); assert((2==base) || (8==base) || (16==base)); stack_t stack; stack_init(stack); do { // 把最低位转换为字符,放到栈里面 stack_push(stack, number_to_char(n % base)); n /= base; // 去掉最低位 } while (n != 0); n = 0; --size; while (n < size) { element_t e = 0; if (!stack_pop(stack, e)) { break; } buffer[n] = (char)e; ++n; } buffer[n] = '\0'; stack_destory(stack);}void test_conversion(){ char buffer_02[32]; char buffer_08[32]; char buffer_16[32]; for (int i=0; i<32; ++i) { conversion(i, 2, buffer_02, sizeof(buffer_02)); conversion(i, 8, buffer_08, sizeof(buffer_08)); conversion(i, 16, buffer_16, sizeof(buffer_16)); printf("%2d %10s%10s%10s\n", i, buffer_02, buffer_08, buffer_16); }}
0 0
- 栈的应用-进制转换
- 数据结构 栈的应用 进制转换
- 栈的应用之进制转换
- 栈的应用---进制转换
- 栈的应用之进制转换
- 栈的应用之一----------进制转换
- 栈的应用之进制转换
- 栈的应用(进制转换)
- 栈的应用3--进制转换
- 栈的应用--进制转换
- 栈的使用和简单进制转换的应用
- 栈的应用 10进制的转换
- 堆栈的应用-进制的转换
- JAVA迷宫算法&进制转换---栈的典型应用
- C++数据结构--栈的应用--进制转换
- 数据结构中栈的应用 ( 进制转换 )
- 栈的应用之进制转换code_legend
- 数据结构:栈的应用(进制转换)
- 触发器小例子
- Lua与C++接口对照
- 20.图的存储表示-----------------邻接表
- 使用sizeof计算类的大小
- 背包问题---递归及动态规划
- 栈的应用-进制转换
- linux默认进程最大栈内存8M
- C++对象布局及多态之虚成员函数调用
- 设计模式之桥接模式(Bridge)摘录
- ArrayList与LinkedList的简单比较
- iOS-调用系统的短信和发送邮件功能,实现短信分享邮件分享
- 交换两个数(不使用中间变量)
- 【iOS】iOS开发TableView分组
- 新浪微博API错误代码