c语言版数据结构(奇迹冬瓜)-栈实战(2)整数进制转换<10进制到2,8,16进制>

数据结构——进制装换(二进制、八进制、十六进制) 效果如下: 源程序如下: #include #include #define SIZE 100 #define ADDSIZE 10 #define ERROR 0 #define OK 1 typedef struct{     int *base;     int *top;     int stacksize; }sqstack; int Initstack(s 阅读详情

//c语言版数据结构(奇迹冬瓜)-栈实战(2)整数进制转换<10进制到2,8,16进制>

/*
初始化栈
输入要转换的进制并进行判断是否在制定进制内
输入要转换的整数并判断改整数是否大于零
循环当整数不为零的时候
{
     先对该整数求余(选择的进制)
	 余数进栈
	 在对该整数求除(选择的进制)
}
循环当栈不为空
{
     出栈
}
*/

//---------头文件----------
#include<stdio.h>
#include<stdlib.h>

//---------宏定义----------

#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
#define TRUE 1
#define ERROR 0
#define OVERFLOW -2

//---------替换和结构体-----------

typedef int Bool;
typedef struct
{
	int *base,*top;
	int stacksize;
}SqStack,*Stack;

//--------函数列表--------
Bool InitStack(Stack s);
Bool StackEmpty(Stack s);
Bool Push(Stack s,int e);
Bool Pop(Stack s,int *e);

//--------主函数---------

void main()
{
	SqStack sq,*s=&sq;
	int n,integer,e,flag=1;
	InitStack(s);
	while(flag)
	{
		printf("输入要转换的进制:(2,8or16):");
		do
		{
			scanf("%d",&n);
			if(2!=n&&8!=n&&16!=n)
			{
				printf("输入转换进制错误!重新输入.\n");
			}
		}while(2!=n&&8!=n&&16!=n);
		printf("输入要转换的十进制整数(integer>0):");
		do
		{
			scanf("%d",&integer);
			if(integer<=0)
			{
				printf("输入整数错误!重新输入.\n");
			}
		}while(integer<=0);
		while(integer)
		{
			Push(s,integer%n);
			integer/=n;
		}
		printf("转换后的结果:");
		while(!StackEmpty(s))
		{
			Pop(s,&e);
			e=e>=10?e+87:e+48;
			printf("%c",e);
		}
		printf("\n");
		printf("(退出0&&继续1):");
		do
		{
			scanf("%d",&flag);
			if(0!=flag&&1!=flag)
			{
				printf("输入错误!重新输入.\n");
			}
		}while(0!=flag&&1!=flag);
		printf("\n");
	}
	//free(s);
	getchar();
	getchar();
}

//--------其余函数--------

Bool InitStack(Stack s)
{
	if(!(s->base=(int *)malloc(STACK_INIT_SIZE*sizeof(int))))
	{
		exit(OVERFLOW);
	}
	s->top=s->base;
	s->stacksize=STACK_INIT_SIZE;
	return TRUE;
}

Bool StackEmpty(Stack s)
{
	return s->base==s->top?TRUE:ERROR;
}

Bool Push(Stack s,int e)
{
	if(s->top-s->base>=s->stacksize)
	{
		if(!(s->base=(int *)realloc(s->base,(STACK_INIT_SIZE+STACKINCREMENT)*sizeof(int))))
		{
			exit(OVERFLOW);
		}
		s->top=s->base+s->stacksize;
		s->stacksize+=STACKINCREMENT;
	}
	*(s->top++)=e;
	return TRUE;
}

Bool Pop(Stack s,int *e)
{
	if(s->base==s->top)
	{
		return ERROR;
	}
	*e=*(--s->top);
	return TRUE;
}


 

进制转换源代码 很完整和标准的进制转换的代码。用的是栈数据结构。 立即下载

相关推荐

数据结构链栈

数据结构-运用链栈实现10进制到8进制和16进制的转换运用堆栈实现逆波兰表达式源程序

C语言:十进制、十六进制数据互换

最近写单片机数据转换用到了十进制、十六进制互换,将示例Demo分享给各位朋友~

不脱发的程序猿 5万+

十进制与十六进制的转换 数据结构c

十进制与十六进制的转换 数据结构c 入栈,出栈,判断栈是否为空

精致代码(C算法——进制问题10-->16)

精致代码(C算法) 十进制转十六进制 #include<stdio.h> char getnum(int z) { switch(z) { case 0:return '0';break; case 1:return '1';break; case 2:return '2';break; case 3:return '3';break; case 4:return '4';break; .

OnlyYg的博客 1527

数据结构-链栈(C语言实现)

数据结构-链栈(C语言实现)

C语言数据结构栈应用-进制转换

该源码 详细说明了c语言中 顺序栈在进制转换上的应用

c语言用链栈进制转换程序,用数据结构(C语言版)中链栈和链队列,实现进制转换。 做的好的话多加分...

满意答案//十进制转化成N进制的算法是//整数部分为除N取余法,小数部分为乘N取整法#include #include #includedouble EPS=1.0e-8;int dblcmp(double x){if(fabs(x)return x<0?-1:1;}void printfFloat(double x,int base){if(dblcmp(x==0))return ;pri...

weixin_34369597的博客 509

十进制转化为十六进制,c++代码,欢迎使用

希望帮助大家啊,自己整理的东西。欢迎使用,,谢谢了。

数据结构第二版,链栈的实现(c语言版)(初始化,入栈,出栈,取栈顶元素)

#include <stdio.h> #include <stdlib.h> #define OK 1 #define ERROR 0 #define TRUE 1 #define FALSE 0 typedef int ElemType; typedef int Status; //链栈储存结构 typedef struct StackNode { ElemType data; struct StackNode *next; //指向下一个同类型结点 ...

weixin_63057782的博客 1293

【ue4】【新手入门】|静态网格模型碰撞设置和合并Actor(合并静态网格体)

上一期学到把构建好的房子模型变成一个静态网格体(也是一个模型)但是静态网格体是没有碰撞的 所以要给这个模型设置碰撞。

m0_63501513的博客 4420

艾德克斯电子负载IT8510维修

2年前从朋友那收了这台艾德克斯电子负载,收来的时候上面的编码器就不好用,就是旋转的时候一会增加一会减小这种现象,不过其他功能都是正常的,自己也就将就用这。直到昨天,电子负载开机发现空载的时候电压不是0,开始有mV级的跳动,心想这个不正常。又测试了一下恒流功能,已经不能正常工作了。

mainbanp 4656

实训C++语言设计——Stack 栈运算

#include #include using namespace std;//---------------抽象数据类型顺序栈的定义------------------//#define STACK_INIT_SIZE 100#define STACK_INCREMENT 10typedef char SElemType,QElemType;typedef struct {  SElemTy

大师的资源 1474

VMD分子可视化实战:5个隐藏技巧让你的科研图像秒变顶刊级别

本文深入探讨了VMD分子可视化软件在科研图像美化中的5个高阶技巧,旨在帮助研究者将分子结构图提升至顶刊级别。内容涵盖原子色彩与材质的艺术化定制、沉浸式分子环境构建、专业构图与视角控制、数据驱动的动态可视化以及自动化工作流建立,通过精细的色彩映射、光照调整、周期性边界展示和脚本自动化,显著增强图像的科学叙事性与视觉冲击力。

weixin_29240343的博客 422

c语言八进制转十进制用fun,编写函数fun(),将十进制正整数转换成k进制数,并按位输出...

满意答案/////////////////////////////////////////// C-Free 4.1// MinGW 3.4.5// veket的小号/////////////////////////////////////////#include void DecToK(char *dec, char *kser, int k);voi...

weixin_29252171的博客 1047

5.2 自抗扰控制 (ADRC)

自抗扰控制(Active Disturbance Rejection Control, ADRC)是由韩京清研究员于1998年提出的一种不依赖被控对象精确数学模型的新型控制技术[reference:0]。其核心思想是将系统的模型不确定性、内部参数摄动以及外部负载变化等所有影响统一定义为“总扰动”,通过一个名为扩张状态观测器(ESO)的环节对其进行实时估计并主动补偿,从而实现动态解耦和强鲁棒性。

技术工作者 1178

27、目标识别的最新进展

本文综述了目标识别(OID)领域的最新进展,重点介绍了质量评估、预处理和搜索空间缩减等关键技术。文章分析了多种质量指标,如缩减率、对完整性、召回率和精确率等,并探讨了它们的适用场景。同时,详细介绍了预处理中自动学习转换规则的方法,以及传统阻塞、排序邻域索引等搜索空间缩减技术。此外,文章还讨论了动态选择缩减技术的方法,并展望了未来研究方向,如更智能的预处理、自适应的缩减技术和与人工智能的结合。希望这些技术和方法能够为目标识别领域的研究和实践提供参考和帮助。

q5r6s7的博客 93

将十进制正整数依次转换成2进制8进制16进制

#include<stdio.h> int main(){ char a[]="0123456789ABCDEF"; int n,m,b[20],i,base,j; scanf("%d",&m); for(i=0;i<3;i++){ if(i==0) base=2; else if(i==1) base=8; else base=16; j=0; n=m; //初值赋给n while(n){ b[j]=n%base;

weixin_44216600的博客 852

结构化数据特征构建神器openfe的实战代码

最近订阅专栏的几位同学一起参加了AI比赛,该比赛的数据形式是结构化的。随着特征和模型的不断迭代优化,达到了一个难以跨越的瓶颈。希望我能够给出一些有效的方法,帮助他们提高成绩。在个人的调研和体验后,向他们推荐了结构化数据特征构建神器openfe,最终也帮助他们提升了十来名的成绩,个人也感到十分的欣慰。特意写此博客,希望能够帮助更多的同学。 文章目录 1. 安装 2. 实战例子一 3. 实战例子二

herosunly的博客 3万+

数据结构4-利用栈的结构,将二进制数转换为十进制数

编写一个程序,利用栈的结构,将二进制数转换为十进制数,

打不死的小欣的专栏 2366

4、风险管理、信息安全与信息管理的核心原则

本文深入探讨了风险管理、信息安全与信息管理的核心原则,涵盖Risk IT框架、ISO 31000标准以及信息安全与信息管理的关键原则。通过案例分析与实际应用挑战的解析,帮助组织更好地应对数字化时代的风险与安全问题,实现可持续发展。

bread的博客 120

Claude Code 从入门到精通,通过实战项目穿插 Agent Skills、MCP、Hooks、子代理、插件等十五个知识点

本文介绍了Claude Code的高级使用技巧,通过一个个人简历网站实战项目,详细讲解了15个核心知识点。主要内容包括:三种权限模式(默认/编辑/计划)的使用与切换;历史会话管理(/resume、/rename、/clear命令);会话回滚功能(/rewind);以及危险参数--dangerously-skip-permissions的注意事项。文章还演示了如何通过计划模式拆分代码文件,并强调了在复杂任务中仔细检查规划步骤的重要性。这些技巧能帮助开发者更高效地使用Claude Code完成项目开发。

1792

十进制转十六进制的C语言实现

#include #include #include void reversestr(char*source,char target[],unsigned int length); void tohex(unsigned long num,char*hexStr); int main() { char hexStr[16]; int num; printf("请输入一个十进制数:\n");

踏实每一小步,成就一大步 8557

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

MFC与坦克大战系列(奇迹冬瓜)---chapter3(坦克属性定义与坦克的平滑移动)

今天我们继续坦克大战系列。我将沿用chapter2的代码继续为大家讲解。由于计划的修订第三节先完成我方坦克的移动。主要的操作流程如下: (一)首先打开上一节的代码,然后在资源解决方案中头文件和主文件的地方添加程序要自己定义的坦克的类和方法。 主要操作位右键头文件->头文件->新建项->.h文件 命名为Thing 在Thing.h里面添加的代码如下 附图。 #include "stdafx.

runner2012的专栏 7389

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

MFC与坦克大战系列(奇迹冬瓜)---chapter2(photoshop与TransparentBlt---快速生成背景与透明位图处理)

今天继续MFC与坦克大战系列.做程序是要有团队合作。毕竟大多数程序员不可能做到美工和程序都精通。但是只有一个人的时候。就需要快捷的生成比较看的过去的图片供游戏所需。就拿坦克大战这个游戏程序来说。刚开始构思的时候就需要考虑到它的扩展性。所以在做坦克大战之前首先要做的就是地图编辑器。那么既然是个坦克大战。直白的说各种障碍该有吧、草坪、沙丘、海水、树木等。原来先用java写过一个地图编辑器先试验一下。之

runner2012的专栏 6630

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

上一篇: c语言版数据结构(奇迹冬瓜)-链表实战(4)双链表解一元多项式相乘
下一篇: c语言版数据结构(奇迹冬瓜)-栈实战(3)括号匹配的检测
utral董东东
博客等级 码龄16年 158粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值