数据结构M16进制转换10进制到N16进制转换10进制的转换课程设计书

进制的转换系统实验报告_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
进制的转换系统实验报告
上传于||暂无简介
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩12页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢数据结构十进制到八进制的转换_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
数据结构十进制到八进制的转换
上传于||文档简介
&&数​据​结​构​课​程​设​计​,​十​进​制​到​八​进​制​转​换​源​代​码​!
阅读已结束,如果下载本文需要使用2下载券
想免费下载本文?
定制HR最喜欢的简历
你可能喜欢数据结构课程设计 供货信息管理 十进制到N进制的转换_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
数据结构课程设计 供货信息管理 十进制到N进制的转换
上传于||文档简介
&&数​据​结​构​课​程​设​计​ ​包​括​供​货​信​息​管​理​和​十​进​制​到​N​进​制​的​转​换
阅读已结束,如果下载本文需要使用2下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩15页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢实验2 进制转换_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
实验2 进制转换
上传于||暂无简介
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩8页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢欢迎加入我们,一同切磋技术。 &
用户名: &&&
密 码: &
共有 6323 人关注过本帖
标题:求用C语言版数据结构做的十进制转换成其它进制(2,8,16)的程序!!!
等 级:论坛游民
帖 子:37
专家分:37
结帖率:77.78%
&&已结贴√
&&问题点数:5&&回复次数:9&&&
求用C语言版数据结构做的十进制转换成其它进制(2,8,16)的程序!!!
有会的帮个忙。。。感激涕零!!
搜索更多相关主题的帖子:
等 级:黑侠
帖 子:218
专家分:556
等 级:黑侠
帖 子:218
专家分:556
我粗略写了一个
程序代码:
#include &stdio.h&
typedef struct tagSTACK
&&& int stack[<font color=#];
void push (int i)
&&& s.top++;
&&& s.stack[s.top] =
int pop ()
&&& if (s.top & -<font color=#)
&&&&&&&&ret = s.stack[s.top];
&&&&&&&&s.top--;
&&&&&&&&return
&&& return -<font color=#;
void Bin (int i, int k, char str[])
&&& int j,
&&& while (i)
&&&&&&&&push (i % k);
&&&&&&&&i /=
&&& for (j = <font color=#; ret = pop (), ret != -<font color=#; ++j)
&&&&&&&&if (ret & <font color=#)
&&&&&&&&&&&&str[j] = ret + 'A' - <font color=#;
&&&&&&&&else
&&&&&&&&&&&&str[j] = ret + '<font color=#';
&&& str[j] = <font color=#;
int main (void)
&&& char result[<font color=#];
&&& s.top = -<font color=#;
&&& scanf (&%d&, &i);
&&& Bin (i, <font color=#, result);
&&& printf (&二进制:\t\t%s\n&, result);
&&& s.top = -<font color=#;
&&& Bin (i, <font color=#, result);
&&& printf (&八进制:\t\t%s\n&, result);
&&& Bin (i, <font color=#, result);
&&& printf (&十六进制:\t%s\n&, result);
&&& return <font color=#;
等 级:青峰侠
帖 子:440
专家分:1905
程序代码:#include &iostream&
#include &stack&
using namespace
int NumConvert(int n,int k);
int main()
&&& int n,k;
&&& cout&&&请输入十进制数:&&&
&&& cin&&n;
&&& cout&&&请输入想转化的进制:&&&
&&& cin&&k;
&&& NumConvert(n,k);
int NumConvert(int n,int k)
&&& stack&char&
&&& int flag=<font color=#;
&&& if(n&<font color=#)
&&&&&&&&n=-n;
&&&&&&&&flag=<font color=#;
&&& while(n)
&&&&&&&&char
&&&&&&&&int m=n%k;
&&&&&&&&if(m&=<font color=#)
&&&&&&&&&&&&x='A'+m-<font color=#;
&&&&&&&&else
&&&&&&&&&&&&x='<font color=#'+m;
&&&&&&&&s.push(x);
&&&&&&&&n=n/k;
&&& if(flag==<font color=#)
&&&&&&&&s.push('-');
&&& while(!s.empty())
&&&&&&&&char e=s.top();
&&&&&&&&s.pop();
&&&&&&&&cout&&e;
&&& return <font color=#;
If You Want Something, Go Get It, Period.
等 级:论坛游民
帖 子:37
专家分:37
回复 3楼 瓦药墙
谢谢啊,大侠,明天就做上机实验了,强人。。。
等 级:论坛游民
帖 子:62
专家分:31
看来哥哥也要学了,以前了解过栈,俄罗斯方块编出来后就去学了
等 级:论坛游民
帖 子:32
专家分:53
#include&iostream&
#include&cmath&
#define stack_int_size 100
typedef struct
&&& char *
&&& char *
&&& char StackS
void intstack(Sqstack &S)
&&& S.base=(char *)malloc(stack_int_size * sizeof(char )) ;
&&& S.top=S.
&&& S.StackSize=stack_int_
int gettop(Sqstack s,char &e)
&&& if(s.top==s.base)
&&&&&&&&return -1;
&&& e=*(s.top-1);
void push(Sqstack &s,char e)
&&& *(s.top++)=e;
int emptystack(Sqstack &s)
&&& if(s.top==s.base)
&&&&&&&&return 1;
&&&&&&&&return 0;
void pop(Sqstack &s,char e)
&&& e=*(--s.top);
char *converson(int N,int d,char *p)
&&& int y=N;
&&& Sqstack S;
&&& intstack(S);
&&& char b[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
&&& while(N)
&&&&&&&&q=abs(N%d);
&&&&&&&&for(int j=0;j&=q;j++)
&&&&&&&&&&&&ch=b[j];
&&&&&&&&push(S,ch);
&&&&&&&&N=N/d;
&&& if(y&0)
&&&&&&&&push(S,'-');
&&& int j=0;
&&& while(!emptystack(S))
&&&&&&&&i=gettop(S,e);
&&&&&&&&p[j]=i;
&&&&&&&&j++;
&&&&&&&&pop(S,e);
&&& p[j]='\0';
&&& return &p[0];
void main()
&&& int a,b;
&&& char p[100];
&&& while(cin&&a&&b)
&&&&&&&&converson(a,b,p);
&&&&&&&&cout&&p&&
HDU&&ACM&&AC过才敢发上来。
等 级:新手上路
回复 楼主 tanghf1014
//利用栈完成数制转换。改进算法使得能够完成十进制数向任意其他进制数的转换(如:十→八或十→十六)。
#include&iostream.h&
#include&malloc.h&
#define MaxSize 16
typedef int ElemT
typedef struct
&&& ElemType data[MaxSize];
//初始化栈
void InitStack(SqStack *&s)
&&& s=(SqStack *)malloc(sizeof(SqStack));
&&& s-&top=-1;
void ClearStack(SqStack *&s)
&&& free(s);
int Push(SqStack *&s,ElemType e)
&&& if(s-&top==MaxSize-1)
&&&&&&&&return 0;
&&& s-&top++;
&&& s-&data[s-&top]=e;
&&& return 1;
int Pop(SqStack *&s,ElemType &e)
&&& if(s-&top==-1)
&&&&&&&&return 0;
&&& e=s-&data[s-&top];
&&& s-&top--;
&&& return 1;
//取栈顶元素
int GetTop(SqStack *s,ElemType &e)
&&& if(s-&top==-1)
&&&&&&&&return 0;
&&& e=s-&data[s-&top];
&&& return 1;
//显示栈中元素
void DispStack(SqStack *s)
&&& for(i=s-&i&=0;i--)
&&&&&&&&cout&&s-&data[i];
//十六进制判断
void Judge(SqStack *s)
&&& for(i=s-&i&=0;i--)
&&&&&&&&if(s-&data[i]==10)&&&cout&&&A&;
&&&&&&&&&&&&else if(s-&data[i]==11)&&&cout&&&B&;
&&&&&&&&&&&&else if(s-&data[i]==12)&&&cout&&&C&;
&&&&&&&&&&&&else if(s-&data[i]==13)&&&cout&&&D&;
&&&&&&&&&&&&else if(s-&data[i]==14)&&&cout&&&E&;
&&&&&&&&&&&&else if(s-&data[i]==15)&&&cout&&&F&;
&&&&&&&&else cout&&s-&data[i];
void main()
&&& SqStack *s;
&&& InitStack(s);
&&& int i,t,j,m;//要转换的进制,j要被转换的数
&&& cout&&&请输入要转换的数(注意:j的范围):&;
&&& cin&&j;
&&& cout&&&请输入要转换成的进制(二进制,八进制,十六进制):&;
&&& cin&&i;
&&& if(i==2||i==8)
&&&&&&&&if(j&0)
&&&&&&&&{&&&m=-j;
&&&&&&&&&&&&while(m!=0)
&&&&&&&&&&&&{
&&&&&&&&&&&&&&& t=m%i;
&&&&&&&&&&&&&&& Push(s,t);
&&&&&&&&&&&&&&& m=m/i;
&&&&&&&&&&&&}
&&&&&&&&&&&&Push(s,1);
&&&&&&&&else if(j&0)
&&&&&&&&{&&&
&&&&&&&&&&&&while(j!=0)
&&&&&&&&&&&&{
&&&&&&&&&&&&&&& t=j%i;
&&&&&&&&&&&&&&& Push(s,t);
&&&&&&&&&&&&&&& j=j/i;
&&&&&&&&&&&&}
&&&&&&&&&&&&Push(s,0);
&&& cout&&&转换成&&&i&&&进制后的代码(首位为符号位):&;
&&& DispStack(s);
&&& ClearStack(s);
&&& if(i==16)
&&&&&&&&if(j&0)
&&&&&&&&{&&&m=-j;
&&&&&&&&&&&&while(m!=0)
&&&&&&&&&&&&{
&&&&&&&&&&&&&&& t=m%i;
&&&&&&&&&&&&&&& Push(s,t);
&&&&&&&&&&&&&&& m=m/i;
&&&&&&&&&&&&}
&&&&&&&&&&&&Push(s,1);
&&&&&&&&else if(j&0)
&&&&&&&&{&&&
&&&&&&&&&&&&while(j!=0)
&&&&&&&&&&&&{
&&&&&&&&&&&&&&& t=j%i;
&&&&&&&&&&&&&&& Push(s,t);
&&&&&&&&&&&&&&& j=j/i;
&&&&&&&&&&&&}
&&&&&&&&&&&&Push(s,0);
&&& cout&&&转换成&&&i&&&进制后的代码(首位为符号位):&;
&&& Judge(s);
&&& ClearStack(s);
&&& cout&&
等 级:新手上路
#include &linkstack.c&
&&& linkstack *1s=NULL;
&&& datatype *a=NULL,n;
&&& linkstacknull(1s);
&&& scanf (&请输入一个十进制的非负整数:%d&,\n);
&&& while (n)
&&&&&&&&1s=linkpush(1s,n%2);
&&&&&&&&n=n/2;
&&& printf (&\n转化后对应的二进制数为:&);
&&& while (1s!=NULL)
&&&&&&&&1s=linkpop(1s,a);
&&&&&&&&printf (&%d&,*a);
等 级:新手上路
根据的原理就是&&N=(N div d)*d+N mod d (其中的div是整除 mod 是求余)
这是一个栈 是从低位到高位一个个进栈的的 然后出栈的时候就是从高到低&&
版权所有,并保留所有权利。
Powered by , Processed in 0.027562 second(s), 8 queries.
Copyright&, BCCN.NET, All Rights Reserved

我要回帖

更多关于 16进制转换10进制 的文章

 

随机推荐