用栈方式实现十进制转十六进制
来源:互联网 发布:阿里云业务发展渠道 编辑:程序博客网 时间:2024/05/16 02:14
用栈方式实现十进制转十六进制:
- #include <stdio.h>
- #define SIZE 30
- typedef struct tag_stack
- {
- char *top;
- char *base;
- int s_length;
- int s_size;
- }*pStack;
- pStack initStack(void)
- {
- pStack S = NULL;
- S = (pStack)malloc(sizeof(struct tag_stack));
- S->base = (char *)malloc(SIZE);
- S->top = S->base;
- S->s_length = 0;
- S->s_size = SIZE;
- return S;
- }
- void push(pStack S,char elem)
- {
- *S->top++ = elem;
- S->s_length++;
- }
- char pop(pStack S)
- {
- S->s_length--;
- return *(--S->top);
- }
- char mod_16(int x,int moder)
- {
- int y = x%moder;
- switch(y)
- {
- case 10:
- return 'A';
- case 11:
- return 'B';
- case 12:
- return 'C';
- case 13:
- return 'D';
- case 14:
- return 'E';
- case 15:
- return 'F';
- default:
- return y+'0';
- }
- }
- void to_16(int num,int moder)
- {
- pStack statck_16 = initStack();
- if( statck_16 == NULL || statck_16->base == NULL)
- {
- printf("error/n");
- return;
- }
- while(num)
- {
- char c;
- c = mod_16(num,moder);
- push(statck_16,c);
- num/=moder;
- }
- push(statck_16,'x');push(statck_16,'0');
- while(statck_16->top != statck_16->base)
- {
- printf("%c",pop(statck_16));
- }
- printf("/n");
- free(statck_16->base);
- free(statck_16);
- statck_16 = NULL;
- }
- int main(void)
- {
- int num = 0;
- printf("请输入要进行转化的数: ");
- scanf("%d",&num);
- to_16(num,16);
- return 0;
- }
- 用栈方式实现十进制转十六进制
- 用递归方式实现十进制转十六进制
- 用Java实现十六进制转十进制
- 用C++实现十进制转二进制或者十进制转十六进制
- 使用无符号右移-&-栈 实现 十进制转十六进制
- [技术学习]用XSLT实现十六进制数字转十进制
- 十进制转十六进制的C语言实现
- 递归实现十进制数转十六进制数
- 十进制转十六进制的C实现
- Bailian4003 十六进制转十进制【十六进制】
- 十六进制转十进制
- 十六进制转十进制
- 十进制转十六进制
- hta 十六进制转十进制
- 十进制转十六进制 代码
- delphi 十六进制转十进制
- 十进制转十六进制
- 十六进制转十进制函数
- (1)struts2--login.jsp(1)
- C语言鼠标操作方法及源码
- 2008.10.21 一个程序只包含一个源程序文件的情况
- 中间件:IBM独占鳌头
- 要买车了,写的我的经历。
- 用栈方式实现十进制转十六进制
- display 显示与隐藏控件
- Eclipse使用方法记录
- HANDLE 其实是一个VOID类型的指针
- 日常正则(一)——盼(Lookahead)
- C# 中SQL调用存储过程
- Visual C++ Debug 与 Release版本区别
- 转贴:介绍并调优JVM GC(Garbage Collection)
- Java虚拟机