数据结构C语言将一个十进制数转换成另外一个P进制数字符串(可以是二进制到十六进制)(共2页).doc
-
资源ID:6071274
资源大小:14KB
全文页数:2页
- 资源格式: DOC
下载积分:20金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
数据结构C语言将一个十进制数转换成另外一个P进制数字符串(可以是二进制到十六进制)(共2页).doc
精选优质文档-倾情为你奉上实验课题一: 将一个十进制数转换成另外一个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。先求得的余数在写出结果时最后写出,最后求出的余数最先写出,符合栈的LIFO性质,故可用栈来实现数制转换。#include<stdio.h>#include<stdlib.h>#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; 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%p<10) push(s,n%p+'0'); else push(s,n%p+'A'-10); n=n/p; while(s->top!=-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);专心-专注-专业