进制转换的一种思路两种实现方法

C++实现进制转换的深度解析与实践 栈的抽象数据类型(ADT)定义了其基本操作,如:push(x): 将元素 x 压入栈顶。pop(): 移除并返回栈顶元素。top(): 返回栈顶元素但不移除它。isEmpty(): 检查栈是否为空。size(): 返回栈中元素的数量。std::stack是C++标准模板库(STL)中的一个容器适配器,它给程序员提供了后进先出(LIFO, Last-In-First-Out)的数据结构功能。这个容器适配器是通过使用底层容器来实现的,默认情况下,底层容器是。 阅读详情

关于进制转换的问题都老掉牙了,方法有很多,但思路大都一样:将每次除以8后的余数余数倒序输出(这里以10转8为例)。因而进制转换就变味倒序输出的问题,倒序的方法有很多,比如直接用数组存储余数,然后数组要倒序输出就很简单了,本文就不赘述了。

本文重点讲后两种方法:

1.递归输出;

2.使用栈结构存和取,结果很自然为逆序。

方法一、递归

#include<stdio.h>
#include<stdlib.h>

void f(int);

void main()
{
	int n;
	bool flag;

	scanf("%d",&n);

	if(n<0){
		flag=true;
		n=-n;
	}
	else
		flag=false;

	f(n);

	printf("\n");
}

void f(int n){
	if(n/8)
		f(n/8);
	printf("%d",n%8);
}


方法二、使用栈结构

typedef struct{
	StackElemtype *top;
	StackElemType *base;
	int stacksize;
}Stack;

void conversion(int n){
	Stack *S;
	int elem;

	InitStack(S);	//创建空栈

	while(n%8){
		push(S,n%8);
		n=n/8;
	}

	while(!StackEmpty(S)){
		pop(S,elem);
		printf("%d",elem);
	}
}

上述两种方法不同,本质是相同的,系统为每一层递归也开辟了栈空间,将余数存储,而方法二的则是我们认为的栈操作,更加简单直观。

Jetson Nano官方镜像下载&烧录 在NVIDIA Jetson Nano开发者套件上安装NVIDIA官方Ubuntu镜像 阅读详情

相关推荐

GraphRAG + Ollama 本地化部署实战:从零搭建知识图谱问答系统

本文详细介绍了如何在本地部署GraphRAG与Ollama,搭建一个完全自主可控的知识图谱问答系统。通过逐步指导环境配置、项目初始化、核心设置修改以及源码适配,成功将GraphRAG从依赖云端OpenAI API转向本地Ollama服务,并选用qwen2.5:7b和nomic-embed-text模型。该方案有效解决了数据隐私与持续API成本问题,特别适合中小企业构建内部知识库或智能客服系统。

x2y3z4a5b的博客 919

链栈,8进制转换

链栈什么是链栈?首先定义结构体初始化入栈出栈判断栈是否为空代码演示 什么是链栈? 链栈是指采用链式存储结构实现的栈 首先定义结构体 typedef struct StackNode{ int data; struct StackNode * next; }StackNode,*LinkStack; 初始化 int InitStack(LinkStack &amp;amp;S) { S = NULL;...

漫天飞舞 678

7.7 数据分析助手:用AI洞察业务数据价值

摘要:AI数据分析助手构建指南 本文介绍了如何构建AI数据分析助手,帮助企业从业务数据中提取价值。系统包含四大核心模块:自然语言理解模块解析用户查询意图,查询规划模块转换为SQL语句,数据可视化模块生成图表,以及洞察生成模块提供深度分析。文章通过销售数据分析助手案例,展示了从数据库准备到自然语言处理的完整实现流程,包括示例代码和系统架构图。该解决方案可降低数据分析门槛,让业务人员直接参与数据探索,提升决策效率。

yonggeit的博客 4093

数制转换---栈

数制转换---栈

搬砖小能手 396

手把手教你用STM32的ADC读取PT100模块,实现高精度温度采集(附完整代码)

本文详细介绍了如何利用STM32的ADC模块读取PT100温度传感器信号,实现高精度温度采集系统。从硬件选型、ADC配置校准到温度计算算法和软件滤波技术,提供完整的实现方案和优化技巧,帮助工程师快速构建稳定可靠的温度监测系统。

weixin_29185199的博客 347

转换shp坐标系之前,设置转换的投影

1.点击目录》工具箱》系统工具箱》Data Management Tools.tbx》投影和变换》创建自定义地理(坐标)变换 2.名称自定义 2.输入地理坐标系可以根据所需要转换的shp文件属性中查询出来 把图层拖入arcgis中,右键属性即可查看 3.复制坐标系,点击“输入地理坐标系”右侧的按钮后,粘贴在顶部搜索框中,并按enter键,选择对应的坐标系 4.点击“输出地理坐标系”右侧的按钮后,选择转换后的坐标系,如4326,选择后点击确认按钮。 5.自定义方法中选择

Wangwangwang___的博客 1864

函数指针转换

#include <iostream> #include <memory> int aa (int a) { std::cout << a <<"destory A\n"; } int main() { void *pVoid = (void*)aa; //函数指针转为void*指针 int(*GetInputEvent)(int); /*定义函数指针 */ GetInputEvent = (int (*)(int))pVoid; //v.

zion--6135的博客 919

NuPlayer 之 Renderer

触发postDrainAudioQueue_l()或postDrainVideoQueue()开始渲染。解码器输出数据 → NuPlayer::Decoder::onMessageReceived。音频数据存入mAudioQueue,视频数据存入mVideoQueue。• 每次写入后通过mNotifyConsumed通知解码器。• 通过AudioSink::write()写入音频设备。• 根据VSync信号和音频时钟调整渲染时机。• 通过Surface直接提交给显示系统。

aningxiaoxixi的博客 315

数制的转换(栈)

文章目录数制的转换 #include <stdio.h> #include <stdlib.h> #include<iostream> using namespace std; typedef char ElemType; typedef struct StackNode* StackLink; struct StackNode{ ElemType data;...

weixin_44266050的博客 403

【linux】linux 出现一个网卡绑定多个ip怎么处理

我的原因是我使用了dhcp,这个会自动分配ip, 将 BOOTPROTO 参数由 dhcp 改为 static,并移除或注释掉与动态分配地址 10.0.2.15 相关的配置行(如果存在)。执行后,您可以再次使用 ip -4 a 或 ifconfig 命令确认 IP 地址已被移除。输出可以看出,您的虚拟机(k8s003)中存在一个名为 enp0s3 的网卡绑定了多个 IPv4 地址。对于某些 Linux 发行版(如 Ubuntu、Debian),您可能需要编辑网络接口的配置文件来移除多余的 IP 地址。

九师兄 298

【阿里AgentScope框架】多框架组合:AgentScope加LangChain,让你的开发效率直线上升

本文以一个例子来看下AgentScope框架和LangChain如何实现融合使用,真的超级简单,一看就懂。这是一种思路,为多种框架的融合使用提供借鉴。

同学小张的博客 3473

栈的应用——数制转换

#include #include #include #define TRUE 1 #define FLASE 0 #define OK 1 #define ERROR 0 #define NULL 0 #define OVERFLOW -1 #define stack_init_size 100 #define stackincrement 10 typedef int s

Felling_first_barren的博客 629

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

数列(规律OR进制转换)

题目描述 给定一个正整数k(3≤k≤15),把所有k的方幂及所有有限个互不相等的k的方幂之和构成一个递增的序列,例如,当k=3时,这个序列是: 1,3,4,9,10,12,13,… (该序列实际上就是:30,31,30+31,32,30+32,31+32,30+31+32,…) 请你求出这个序列的第N项的值(用10进制数表示)。 例如,对于k=3,N=100,正确答案应该是981。 输入 输入只有1行,为2个正整数,用一个空格隔开: k N (k、N的含义与上述的问题描述一致,且3≤k≤15,10≤N≤10

weixin_44856457的博客 731

IMSL CNL 7.0.0 (x86-64)Crack

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

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

蓝桥杯C语言培训5 博弈问题的思路 例1 excel地址(培训4补充)

题目描述:Excel单元格的地址表示很有趣,它使用字母来表示列号,比如:A表示第1列,B表示第2列,Z表示第26列,AA表示第27列,AB表示第28列,BA表示第53列,....当然Excel的最大列号是有限度的,所以转换起来不难。如果我们想把这种表示法一般化,可以把很大的数字转换为很长的字母序列呢?本题目既是要求对输入的数字, 输出其对应的Excel地址表示方式。例如,输入:26则程序应该输出:...

zhangge138的博客 617

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

leetcode[168] Excel Sheet Column Title

给定一个数,求出在excel中的列标题。例如 1 对应 A,2 对应 B,. .. , 26对应Z, 27 对应AA 在没看别人解法之前,我是这样做的: 观察数学规律,每次求一个字母,假设只有AB的情况的话,应该是这样的:我们列举前面3大种 A,B,AA,AB,BA,BB,AAA,AAB,ABA,ABB,BAA,BAB,BBA,BBB 第一种只有一个字母的是两个,如果是26个字...

108

【蓝桥杯 C++】试题 基础练习 十六进制转八进制(进制转换三)

资源限制 时间限制:1.0s 内存限制:512.0MB —————————————————————————————————————— 问题描述   给定n个十六进制正整数,输出它们对应的八进制数。 ——————————————————————————————————————输入格式   输入的第一行为一个正整数n (1<=n<=10)。   接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。输出格式   输出n行,

FlowerCoding的博客 221

第十届 蓝桥杯软件类 C或C++程序设计 本科B组 省赛 第2题 年号字串

试题 B: 年号字串 本题总分:5 分   【问题描述】   小明用字母 A 对应数字 1,B 对应 2,以此类推,用 Z 对应 26。对于 27 以上的数字,小明用两位或更长位的字符串来对应,例如 AA 对应 27,AB 对 应 28,AZ 对应 52,LQ 对应 329。   请问 2019 对应的字符串是什么?   【答案提交】   这是一道结果填空的题,你只需要算出结果后提交即可。 本题...

龙少的小窝 1512

11-二进制中1的个数

C++实现:将n的每位与1进行按位与操作 class Solution { public: int NumberOf1(int n) { //通过1和该二进制数的每一位进行与操作来判断 if(n==0) return 0; int count = 0; int...

菜鸟学编程 170

360校招之k进制数中最多(k-1)的数

360校招之k进制数中最多(k-1)的数题目思路代码 题目 链接:https://www.nowcoder.com/questionTerminal/a19f8670d25d444ab9e2f5601e1143ce?answerType=1&f=discussion 来源:牛客网 现在有q个询问,每次询问想问你在[l,r]区间内,k进制表示中,k-1的数量最多的数是哪个数。比如当k=2时,...

weixin_45501141的博客 696

2021-10-02 [Mnsx_x]刷题笔记——数字转化为十六进制数

[Mnsx_x]刷题笔记——数字转化为十六进制数 给定一个整数,编写一个算法将这个数转换为十六进制数。对于负整数,我们通常使用 补码运算 方法。 注意: 1.十六进制中所有字母(a-f)都必须是小写。 2.十六进制字符串中不能包含多余的前导零。如果要转化的数为0,那么以单个字符’0’来表示;对于其他情况,十六进制字符串中的第一个字符将不会是0字符。 4.给定的数确保在32位有符号整数范围内。 5.不能使用任何由库提供的将数字直接转换或格式化为十六进制的方法。 题目解析 阅读题目可知,题目主要目的是将十进

Mnsx2002的博客 234

从零学算法1017

给你一个整数 n ,以二进制字符串的形式返回该整数的 负二进制(base -2)表示。注意,除非字符串就是 “0”,否则返回的字符串中不能含有前导零。解释:(-2)2 + (-2)1 + (-2)0 = 3。解释:(-2)2 + (-2)1 = 2。解释:(-2)2 = 4。

m0_53256503的博客 895

1B - Spreadsheets

链接: https://codeforces.com/problemset/problem/1/B 题意: 两种方式表达表格: 一种是R X C Y ,例如R 23 C 55是第55列第23行中单元格 另一种是用字母+数字表示 数字部分表示行 字母部分 A表示1,Z表示26,AA表示27,AZ表示52,以此类推 例如BC23 表示第55列第23行中单元格 给你其中一种,转化成另一种 输入 2 R23C55 BC23 输出量 BC23 R23C55 解: 10s的超长时间 只需要想好怎么处理就行 首先判断

Fei_WuYan的博客 260

进制转换

文章目录序言概念可行性实现 序言   对于OI出题人的尿性研究得出结论:他们总会出一些题来刁难OIer。而这些题中最常见的莫过于高精度算法和进制转换了。他们十分基础,又十分难打代码,所以广受出题人青睐。本篇就来说一说本人了解的进制转换。   其实进制转换更多的是一种思路,实现方法有很多,有时候还可以与其他算法重合(参照某次周测趣题总结(水题篇))。所以本博客更多的是介绍该思路而不是算法。 概念   首先,要了解进制转换是什么。人类为了计数方便,发明了数字,但由于计数数量的增加,定义数字越来越不方便,于是人类

Xm_wy的博客 807

【总结】C++各种进制转换函数汇总

文章目录一、指定格式转换输出二、任意2~36进制数转化为10进制数三、10进制数转换为任意的n进制数四、例题及题解 一、指定格式转换输出 直接通过C/C++输出格式转换为相应进制的数。 例如: #include <iostream> #include <cstdio> #include <algorithm> #include <bitset> us...

360°顺滑 1万+

Java中进制转换的两种方法你知道吗?

使用 new BigInteger(String val, int radix) 方法,该方法第一个参数是需要进行进制转换的数(String),第二个参数是需要进行转换的进制(int),返回的是一个。方法,该方法第一个参数是需要进行进制转换的数(String),第二个参数是需要进行转换的进制(int),返回的是一个。方法,该方法第一个参数是需要进行进制转换的数(int),第二个参数是需要进行转换的进制(int),返回的是一个。思路:将A进制数转化为十进制数,再将10进制数转化为B进制数。

zhyy-ang的博客 1135

用Python实现进制转换,这一篇教程就够了

在转换之前,我们先了解以下各种进制十进制(Decimal)我们所熟知的十进制,其实是从 0 开始,数到 9 之后,就跳到 10,这样就变成了 10,数数大家总会把二进制(Binary)二进制同理,从 0 开始也就是 00(前面的一个0可以省去,但是为了更好的描述,所以保留),到 01,也变成了 10【对应十进制中的 3】,然后是 11【对应十进制中的 4】,100【十进制中的5】。。。以此类推。

m0_59162248的博客 1万+
上一篇: 一步一步写算法(之创建顺序链表)
下一篇: 一步一步写算法(之链表的删除与插入)
Kunikda
博客等级 码龄15年 21粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值