链栈实现10进制转换2进制
2009-10-11 18:36
543 查看
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
typedef int datatype;
typedef struct node{
datatype data;
struct node *next;
}linkstack;
void push(linkstack *s,datatype x){//元素入栈函数
linkstack *p;
p=(linkstack *)malloc(sizeof(linkstack));
p->data=x;
p->next=s->next;
s->next=p;
}
int pop(linkstack *top,int *x) //将x弹出链栈top并将值送入x中
{
linkstack *temp;
temp=top->next;
if(top->next==NULL)
return(0);
else
{
*x=temp->data;
top->next=temp->next;
free(temp);
return(1);
}
}
void main()
{
datatype e,n;int i=0;int j=0;
linkstack *q;
q=(linkstack *)malloc(sizeof(linkstack));
if (q==NULL) exit(0);
scanf("%u",&n);
while(n) // 当n不等于0
{push(q,n%2); // 入栈n除以2的余数(2进制的低位)
i++; // 统计入栈元素个数
n=n/2;
}
while(j<i) // 输出二进制
{ j++;
pop(q,&e);
printf("%d",e);
}
system("pause");
}
#include<stdlib.h>
#include<malloc.h>
typedef int datatype;
typedef struct node{
datatype data;
struct node *next;
}linkstack;
void push(linkstack *s,datatype x){//元素入栈函数
linkstack *p;
p=(linkstack *)malloc(sizeof(linkstack));
p->data=x;
p->next=s->next;
s->next=p;
}
int pop(linkstack *top,int *x) //将x弹出链栈top并将值送入x中
{
linkstack *temp;
temp=top->next;
if(top->next==NULL)
return(0);
else
{
*x=temp->data;
top->next=temp->next;
free(temp);
return(1);
}
}
void main()
{
datatype e,n;int i=0;int j=0;
linkstack *q;
q=(linkstack *)malloc(sizeof(linkstack));
if (q==NULL) exit(0);
scanf("%u",&n);
while(n) // 当n不等于0
{push(q,n%2); // 入栈n除以2的余数(2进制的低位)
i++; // 统计入栈元素个数
n=n/2;
}
while(j<i) // 输出二进制
{ j++;
pop(q,&e);
printf("%d",e);
}
system("pause");
}
相关文章推荐
- VC++ 中实现进制2进制,10进制,16进制的相互转换
- 实现10进制转换为2进制
- VC++ 中实现进制2进制,10进制,16进制的相互转换
- VC++ 中实现进制2进制,10进制,16进制的相互转换
- 【原】VC++ 中实现进制2进制,10进制,16进制的相互转换
- 2进制与8,16,10进制的相互转换(带小数点)
- C# 2进制、8进制、10进制、16进制...各种进制间的转换(一) convert 类中的方法
- java中 8进制 10进制 2进制 16进制 相互转换
- javascript将10进制数转换为2进制
- Delphi实现进制转化(2进制,8进制,10进制,16进制)
- javascript 进制转换(2进制、8进制、10进制、16进制之间的转换)
- [收藏]2进制、8进制、10进制、16进制...各种进制间的轻松转换(c#)
- 单向链栈实现进制转换(十进制转换成N进制数【正数】)
- perl实现16进制数转换成10进制数
- 自己实现10进制转2进制和16进制
- java中 8进制 10进制 2进制 16进制 相互转换
- 输入2进制转换成10进制从屏幕上输出
- asp.net(c#)下各种进制间的轻松转换(2进制、8进制、10进制、16进制)
- js实现26进制和10进制之间的转换
- 用MASM汇编语言实现从10进制/16进制到2进制的转换