首页 > 其他分享 >[数据结构]进制转换

[数据结构]进制转换

时间:2024-10-19 19:52:41浏览次数:3  
标签:seqstack 转换 进制 int top MAXSIZE push 数据结构 cout

要求实现函数,借助如下自定义栈seqstack将一个正整数n转换为$$进制数并输出。输出时用大写字母A、B、C、D、E、F分别表示10、11、12、13、14、15。

#include <iostream>
#define MAXSIZE 100
using namespace std;

typedef struct
{
    int data[MAXSIZE];
    int top;
}seqstack;

void initstack(seqstack &s)
{
    s.top=-1;
}

int push(seqstack &s,int x)
{
    if(s.top==MAXSIZE-1)
    {
        cout<<"the stack is full!"<<endl;
        return 0;
    }
    s.top++;
    s.data[s.top]=x;
    return 1;
}
int pop(seqstack &s,int &e)
{
    if(s.top==-1)
    {
        cout<<"the stack is empty!"<<endl;
        return 0;
    }
    e=s.data[s.top];
    s.top--;
    return 1;
}
int isempty(seqstack s)
{
    if (s.top==-1)
        return 1;
    else return 0;
}

void conversion(int N,int d)//利用自定义栈进行进制转换
{
    seqstack s;
    s.data[MAXSIZE];
    initstack(s);
    int e=N;
    while(e>=d)
    {
        int t=e%d;
        push(s,t);
        e=e/d;
    }
    push(s,e);
    while(!isempty(s))
    {
        pop(s,e);
        if(d==16)
        {
            if(e>=10)cout<<char('A'+e-10);
            else cout<<e;
        }
        else cout<<e;
    }
}

int main()
{
    int n,k;
    cin>>n>>k;
    conversion(n,k);
    return 0;

}

标签:seqstack,转换,进制,int,top,MAXSIZE,push,数据结构,cout
From: https://blog.csdn.net/Asteroid_PZX/article/details/143083030

相关文章

  • 考研数据结构-串(串的模式匹配算法)
             串的基本操作可以参照考研数据结构-串(串的基本操作),除去这些基本操作外,还有一个重要的操作就是串的模式匹配算法。模式匹配算法就是,对于一个串中某个子串的定位操作,这里会讲两种模式匹配算法:简单模式匹配算法和KMP算法。一、简单模式匹配算法   简单......
  • 【数据结构与算法】之二分查找
    二分查找(BinarySearch)是一种在有序数组中查找特定元素的搜索算法。它通过比较数组中间元素与目标值来工作,从而将搜索范围缩小到一半,也称折半查找,是一种非常高效的工作于有序数组的查找算法。本文主要介绍二分查找及其几个变种,包括基础版、改变版、平衡版和Java版,以及Leftmost......
  • 「图::连通」详解并查集并实现对应的功能 / 手撕数据结构(C++)
    目录概述成员变量创建销毁根节点访问路径压缩启发式合并复杂度Code概述并查集,故名思议,能合并、能查询的集合,在图的连通性问题和许多算法优化上着广泛的使用。这是一个什么数据结构呢?一般来讲,并查集是由一系列集合组成的集合群。其中,每个集合都有一个根节点,它的......
  • 指南针成本均线指标(CCMA)转换为通达信(TDX)的公式
    指南针成本均线指标(CCMA)转换为通达信(TDX)的公式,你可以使用通达信的公式语言(通达信公式语言类似于一种脚本语言,用于编写技术指标和策略)。以下是一个示例,展示了如何在通达信中实现CCMA指标。通达信公式语言中的CCMA指标//指南针成本均线指标(CCMA)//参数:N-计算周期,Alpha-......
  • 数据结构与算法之线性表的基本操作
    数据结构之线性表的基本操作初始化,插入,获取#include<stdio.h>#include<stdlib.h>#include<malloc.h>#defineOK1#defineOVERFLOW-1#defineLIST_INIT_SIZE100#defineLISTINCREMENT10typedefintElemType;typedefstruct{ ElemType*elem; intlength; i......
  • 【MySQL】设置二进制日志文件自动过期,从根源上解决占满磁盘的问题:通过修改 binlog_exp
    引言MySQL的二进制日志(binlog)文件记录了数据库中所有更改的详细信息,包括但不限于对数据的插入、删除、更新,对表和数据库的创建、更改、删除等操作。每一次这样的操作都会在二进制日志中生成一个新的日志事件,并被写入到一个新的二进制日志文件中。因此,如果数据库的活动量较......
  • FFmpeg开发笔记(五十八)把32位采样的MP3转换为16位的PCM音频
    ​《FFmpeg开发实战:从零基础到短视频上线》一书的“5.1.2 把音频流保存为PCM文件”介绍了如何把媒体文件中的音频流转存为原始的PCM音频,在样例代码的转存过程中,解码后的PCM数据未经任何加工处理,就直接保存到二进制文件。也就是说,原音频的采样频率是多少,PCM文件的采样频率也是多......
  • 【高阶数据结构】揭开红黑树‘恶魔’的面具:深度解析底层逻辑
    高阶数据结构相关知识点可以通过点击以下链接进行学习一起加油!二叉搜索树AVL树大家好,我是店小二,欢迎来到本篇内容!今天我们将一起探索红黑树的工作原理及部分功能实现。红黑树的概念相对抽象,但只要我们一步步深入,定能慢慢揭开它的神秘面纱......
  • 高清图解28个高并发之数据结构/数据结构场景匹配技巧分析(高并发精通篇三)
    Java中的Map家族包括基于哈希表的HashMap,维护插入顺序的LinkedHashMap,基于红黑树的TreeMap,线程安全的Hashtable和ConcurrentHashMap,以及基于身份比较的IdentityHashMap和基于弱引用的WeakHashMap。Queue家族则涵盖了Vector、Stack、Properties以及多种List和Deque实现,适用......
  • XL6019芯龙180KHz 60V 5A开关电流升压/升降压型DC-DC转换器
    描述XL6019是一款专为升压、升降压设计的单片集成电路,可工作在DC5V到40V输入电压范围,低纹波,内置功率MOS。XL6019内置固定频率振荡器与频率补偿电路,简化了电路设计。PWM控制环路可以调节占空比从0~90%之间线性变化。内置过电流保护功能与EN脚逻辑电平关......