#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 1024
typedef int ElemType;typedef struct SqStack
{ElemType data[MAXSIZE];int top;
}SqStack;//初始化
SqStack* InitStack()
{SqStack* S;S = (SqStack*)malloc(sizeof(SqStack));if (S == NULL)return S;S->top = -1;return S;
}//判断栈是否为空
int EmptyStack(SqStack* S)
{if (S->top == -1)return 1;elsereturn 0;
}//入栈
int PushStack(SqStack* S, ElemType x)
{if (S->top >= MAXSIZE - 1)return 0;S->top++;S->data[S->top] = x;return 1;
}//出栈
int PopStack(SqStack* S, ElemType* x)
{if (S->top == -1)return 0;else{S->top--;*x = S->data[S->top + 1];return 1;}
}//十进制转换为二进制
void zhuanhuan2(int N)
{int x;SqStack* S = InitStack();while (N > 0){PushStack(S, N % 2);N = N / 2;}while (!EmptyStack(S)){PopStack(S, &x);printf("%d", x);}
}//十进制转换为八进制
void zhuanhuan8(int M)
{int x;SqStack* S = InitStack();while (M > 0){PushStack(S, M % 8);M= M / 8;}while (!EmptyStack(S)){PopStack(S, &x);printf("%d", x);}
}//十进制转换为十六进制
void zhuanhuan16(int D)
{int x;SqStack* S = InitStack();while (D > 0){PushStack(S, D % 16);D = D / 16;}while (!EmptyStack(S)){PopStack(S, &x);switch (x){case 10:printf("A");break;case 11:printf("B");break;case 12:printf("C");break;case 13:printf("D");break;case 14:printf("E");break;case 15:printf("F");break;default:printf("%d", x);break;}}
}
int main()
{int N,M,D;printf("请输入你要转换的十进制数:\n");scanf_s("%d", &N);printf("其对应的二进制数为:\n");zhuanhuan2(N);printf("\n");printf("请输入你要转换的十进制数:\n");scanf_s("%d", &M);printf("其对应的八进制数为:\n");zhuanhuan8(M);printf("\n");printf("请输入你要转换的十进制数:\n");scanf_s("%d", &D);printf("其对应的十六进制数为:\n");zhuanhuan16(D);printf("\n");return 0;
}

试运行结果:

欢迎大家指出问题。

栈的应用--数制转换(十进制数转换为二进制,八进制,十六进制)相关推荐

  1. 栈的应用--数制转换(十进制数转换为二进制、八进制、十六进制)

    结果图: 代码如下: #include<stdio.h> #include<stdlib.h> #define ERROR 0 #define OK 1 typedef int ...

  2. 利用栈实现把十进制数转换为二进制至十六进制之间的任一进制数并输出的功能。(第二版)

    [实验题目内容] 保持计算机默认的十进制不变(要求不用C++流操纵符转换基数为八进制形式oct,不用C++流操纵符转换基数为十六进制形式hex,也不用setbase(base)函数将基数设置为base ...

  3. 利用栈实现把十进制数转换为二进制至十六进制之间的任一进制数并输出的功能。

    利用栈实现把十进制数转换为二进制至十六进制之间的任一进制数并输出的功能. [实验题目内容] [实验环境](使用的软件):VS - 2010 [项目设计源代码] [项目测试运行结果截图] [实验题目内容 ...

  4. 十进制数转换为二进制,八进制,十六进制数的算法(欢迎拍砖)

    <script type="text/JavaScript"> </script> <script src="http://a.alimam ...

  5. Java中实现十进制数转换为二进制的几种办法

    Java中实现十进制数转换为二进制 第一种:除基倒取余法 这是最符合我们平时的数学逻辑思维的,即输入一个十进制数n,每次用n除以2,把余数记下来,再用商去除以2...依次循环,直到商为0结束,把余数倒 ...

  6. Java中实现十进制数转换为二进制

    Java中实现十进制数转换为二进制 第一种:除基倒取余法 这是最符合我们平时的数学逻辑思维的,即输入一个十进制数n,每次用n除以2,把余数记下来,再用商去除以2-依次循环,直到商为0结束,把余数倒着依 ...

  7. C++十进制数转换为二进制表示的算法(附完整源码)

    C++十进制数转换为二进制表示的算法 C++十进制数转换为二进制表示的算法完整源码(定义,实现,main函数测试) C++十进制数转换为二进制表示的算法完整源码(定义,实现,main函数测试) #in ...

  8. 利用栈的基本操作,将十进制数转换为八进制数

    #include <stdio.h> #include <stdlib.h> #include <malloc.h> #define STACKSIZE 100 t ...

  9. Python | 不使用库函数将十进制数转换为二进制

    Given a decimal number and we have to convert it into binary without using library function. 给定一个十进制 ...

最新文章

  1. 科大讯飞CV赛baseline:图像分类实践+0.55
  2. 缩小规模,OpenAI文本生成图像新模型GLIDE用35亿参数媲美DALL-E
  3. python 继承和多态
  4. python中怎么查看二进制转换的数据_python处理二进制数据的方法
  5. python 错误类型
  6. Java设计模式笔记(2)工厂方法模式
  7. 25 FI配置-财务会计-定义冲销原因
  8. vs2008C1902数据库管理程序不匹配
  9. OBIEE 11g 启动与停止包含服务器重启
  10. 【数据结构】堆、堆排序笔记
  11. Kubernetes基于EFK进行统一的日志管理方案
  12. TouchVG 支持 CocoaPods 了!
  13. java计算机毕业设计网络教学系统源码+系统+数据库+lw文档
  14. 旧历九月十六是老爸的生日,现在我才晓得
  15. myeclipse部署多个应用到不同的weblogic domain中
  16. Unity九宫格切割图片 2D Sprite
  17. Android SIGABRT的可能原因及开启手机Log日志
  18. 女人拉屎故事_一个敏锐的女性下午的故事
  19. 测试如何快速了解一个产品、需求、任务(海盗派测试分析,KYM)
  20. 胡玮炜离职,摩拜成美团大包袱,王兴后悔了吗?

热门文章

  1. 如何做一场优秀的双旦招生活动方案?
  2. 成都市冠卓品牌设计责任有限公司“开展走访慰问活动”
  3. 谷歌翻译退出中国,不妨试试这 6 款免费好用的翻译工具!
  4. 2016年,失望,开心,耐心,学习,梦想,领悟,惋惜,展望
  5. 基于JAVA的小型云盘网盘管理系统
  6. intouch与Modbus TCP设备对接(重点:长整型解析)
  7. 云ERP系统在轧钢管理中的控制与应用
  8. 基于 RT-Thread 的智能家居 DIY 视频教程新鲜出炉啦啦啦!!!
  9. vue,git,webpack,es6等
  10. 深度学习中的数学公式(二:线性代数、概率论、数理统计相关公式)