利用堆栈进行数制转换
2011-12-21 00:25
169 查看
下面以无符号十进制转换为八进制为例简述数制转换问题。将十进制数num转换为八进制可以反复执行以下步骤得到:
1,将num除以8,取其余数
2,判断num除以8的商:
若商为零,则转换到此结束;
若商不为零,则将商送num,转到第1步。
算法描述如下:
1,将num除以8,取其余数
2,判断num除以8的商:
若商为零,则转换到此结束;
若商不为零,则将商送num,转到第1步。
算法描述如下:
/* 将无符号十进制数转换为八进制数 */ /* 堆栈采用顺序存储结构 */ #define M 100 void conversion( int num ){ int stack[ M ], int top = -1; do{ stack[ ++top ] = num % 8; /* 将本次取得的余数进栈 */ num = num / 8; }while( num != 0 ); while( top != -1 ){ printf( "%d", stack[ top-- ] ); /* 依次退栈 */ } } /* 堆栈采用链式存储结构 */ typedef struct node{ int data; struct node *link; }STNode, *STLink; void conversion( int num ){ STLink p, top = NULL; do{ p = ( STLink )malloc( sizeof( STNode ) ); if( p != NULL ){ p->data = num % 8; /* 将本次取得的余数进栈 */ p->link = top; top = p; num = num / 8; /* 求得num除以8的商 */ } }while( num != 0 ); while( top != NULL ){ p = top; printf( "%d", top->data ); top = top->link; /* 依次退栈 */ free( p ); /* 释放链接点空间 */ } }
相关文章推荐
- 利用堆栈方式对grid进行行排序的具体操作
- HTML中利用堆栈方式对Table进行行排序
- 如何利用堆栈及逆波兰表达式进行数学四则运算(C语言版)
- HTML中利用堆栈方式对Table进行行排序
- HTML中利用堆栈方式对Table进行行排序
- 利用栈进行数制转换
- 利用堆栈进行四则运算
- 利用栈进行数制转换
- 什么是堆栈追踪(StackTrace)?如何利用StackTrace对程序进行调试?
- 汇编中利用堆栈进行现场保护与恢复
- 关于Linux下利用GPU对视频进行硬件加速转码的方案
- Android利用mediacodec进行视频H264编码解码播放
- Java利用Socket进行远程过程调用
- 利用xslt对xml进行缩进格式化处理
- 利用R与SAS进行关联规则挖掘
- 利用SharpZipLib进行压缩和解压缩
- Android利用Fiddler进行网络数据抓包
- 机器学习:利用核函数进行非线性分类
- 利用 进行Json对象的序列化和反序列化 - RJ - 博客园
- 利用order by 进行盲注