《数据结构C语言将一个十进制数转换成另外一个P进制数字符串(可以是二进制到十六进制)(共2页).doc》由会员分享,可在线阅读,更多相关《数据结构C语言将一个十进制数转换成另外一个P进制数字符串(可以是二进制到十六进制)(共2页).doc(2页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上实验课题一: 将一个十进制数转换成另外一个P进制数字符串(可以是二进制到十六进制)。转换函数的原型为:void Convert (int n, char str, unsigned P);n:输入,待转换的数str:输出,转换好的P进制字符串P:输入,要转换的进制,取值可从2到16。如果在这范围之外,可认为输入错,不做转换。将一个整数转换成P进制的数,我们可以采用如下的方法:例:十进制转换成八进制(P等于8):(66)10=(102)866/8=8 余 28/8 =1 余 01/8 =0 余 1当商为0时转换结束,转换结果为上述过程余数序列的逆序:102。先求得的余数
2、在写出结果时最后写出,最后求出的余数最先写出,符合栈的LIFO性质,故可用栈来实现数制转换。#include#include#define maxsize 100typedef struct char datamaxsize; int top;sqstack,*Stack;Stack initstack() Stack s; s=(Stack)malloc(sizeof(sqstack); s-top=-1; return s;int push(Stack s,char ch) if(s-top=maxsize) return 0; else s-data+s-top=ch; return 1
3、; int pop(Stack s,char *ch) if(s-top=-1) return 0; else *ch=s-datas-top-; return 1; void Convert (int n, char str, unsigned p)/十进制数据n向p进制转换 Stack s; int i=0; s=initstack(); while(n) if(n%ptop!=-1) pop(s,&stri+); stri=0;void main() int n; char strmaxsize; unsigned p; printf(请输入数据nn); scanf(%d,&n); printf(请输入数据pn); scanf(%d,&p); Convert(n,str,p); printf(%sn,str);专心-专注-专业