c++ 模拟进制之间的转换

news2024/11/27 2:15:39

c++ 模拟进制之间的转换

废话少说,直接上图

效果图

在这里插入图片描述

代码

#include<iostream> 
using namespace std;

// 10进制转n进制 n=>2 8 16
string _10to_n(int num,int n=2){
	string res = "";
	int yushu;
	char c;
	while( num!=0 ){
		yushu = num%n;
		switch (yushu) {
			case 10:
				c='A';
				break;
			case 11:
				c='B';
				break;
			case 12:
				c='C';
				break;
			case 13:
				c='D';
				break;
			case 14:
				c='E';
				break;
			case 15:
				c='F';
				break;
			default:
				c=char(yushu+48);
				break;
		}
		res = c+res;
		num = num/n;
	}
	return res;
} 

// 2进制转10进制
int _2to_10(string bins){
	int res=0,n=1;
	for(int i=bins.size()-1;i>=0;i--){
		res += (bins[i]-48) * n;
		n *= 2;
	}
	return res;
}

// 2进制转n进制 n => 10 8 16
string _2to_n(string bins,int n=10){
	if(n==10){
		return to_string( _2to_10(bins) );
	}else if(n==8){
		return _10to_n( _2to_10(bins),8 );
	}else if(n==16){
		return _10to_n( _2to_10(bins),16 );
	}
	return "";
}

// 8进制转10进制
int _8to_10(string oct){
	int res=0;
	int n=1;
	for(int i=oct.size()-1;i>=0;i--){
		res+=(oct[i]-48) * n;
		n*=8;
	}
	return res;
}

// 8进制转n进制 n => 10 2 16
string _8to_n(string oct,int n=10){
	if(n==10){
		return to_string( _8to_10(oct) );
	}else if(n==2){
		return _10to_n( _8to_10(oct),2 );
	}else if(n==16){
		return _10to_n( _8to_10(oct),16 );
	}
	return "";
}

// 16进制转10进制
int _16to_10(string hex){
	int res=0,n=1,c;
	for(int i=hex.size()-1;i>=0;i--){
		switch (hex[i]) {
			case 'A':
				c= 10;
				break;
			case 'B':
				c= 11;
				break;
			case 'C':
				c= 12;
				break;
			case 'D':
				c = 13;
				break;
			case 'E':
				c= 14;
				break;
			case 'F':
				c= 15;
				break;
			default:
				c= hex[i]-48;
				break;
		}
		res += c * n;
		n *= 16;
	}
	return res;
}

// 16进制转n进制 n => 2 8 10
string _16to_n(string hex,int n=2){
	if(n==10){
		return to_string( _16to_10(hex) );
	}
	return _10to_n( _16to_10(hex),n );
}

int main() { //主函数,程序的入口
	cout<< "将十进制的98 分别转成 2 8 16进制是:" << endl;
	cout<< "转成 2进制是 => " << _10to_n(98,2) << endl;
	cout<< "转成 8进制是 => " << _10to_n(98,8) << endl;
	cout<< "转成16进制是 => " << _10to_n(98,16) << endl;
	cout<< endl;
	 
	cout<< "将二进制的11011 分别转成 8 10 16进制是:" << endl;
	cout<< "转成 8进制是 => " << _2to_n("11011",8) << endl;
	cout<< "转成10进制是 => " << _2to_n("11011",10) << endl;
	cout<< "转成16进制是 => " << _2to_n("11011",16) << endl;
	cout<< endl;
	
	cout<< "将8进制的14 分别转成 2 10 16进制是:" << endl;
	cout<< "转成 2进制是 => " << _8to_n("14",2) << endl;
	cout<< "转成10进制是 => " << _8to_n("14",10) << endl;
	cout<< "转成16进制是 => " << _8to_n("14",16) << endl;
	cout<< endl;
	
	cout<< "将16进制的D78 分别转成 2 8 10进制是:" << endl;
	cout<< "转成 2进制是 => " << _16to_n("D78",2) << endl;
	cout<< "转成 8进制是 => " << _16to_n("D78",8) << endl;
	cout<< "转成10进制是 => " << _16to_n("D78",10) << endl;

}

结束啦!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1188517.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RPA处理重复工作,助力高效资金管理

在瞬息万变的市场竞争中&#xff0c;众多企业开展多元化经营以获取最大的经济效益。然而&#xff0c;企业的多元化经营程度越高&#xff0c;协调活动可能造成的决策延误也越多&#xff0c;其资金管理往往将面临更大的考验。随着新技术的发展&#xff0c;更多具备多元产业的企业…

华为云分布式数据库GaussDB,做金融数字化的坚实数据底座

本篇为大家分享下GaussDB的商业进展以及产品能力升级方面的最新情况。 1. 华为云GaussDB正在从金融覆盖到更多行业 从2019年开始&#xff0c;在华为内部通过持续的锤炼&#xff0c;推出了融合多项技术的自主创新的GaussDB数据库&#xff0c;而且陆续完成了华为公司内部核心系统…

Grafana安装配置

配置文件路径 /etc/grafana/grafana.ini 一、Grafana 安装 https://grafana.com/grafana/download?editionoss&pgget&plcmtselfmanaged-box1-cta1 以centos为例 #安装 sudo yum install -y https://dl.grafana.com/oss/release/grafana-10.2.0-1.x86_64.rpm#修改端…

RT-Thread提供的网络世界入口 -net组件

作为一款在RTOS领域对网络支持很丰富的RT-Thread&#xff0c;对设备联网功能的支持的工具就是net组件。 位于/rt-thread/components/net路劲下&#xff0c;作为一款基础组件&#xff0c;env与Studio的工程配置项界面的配置项都依赖该目录下的Kconfig。 我们对网络功能的选择&am…

STM32 GPIO

STM32 GPIO GPIO简介 GPIO&#xff08;General Purpose Input Output&#xff09;通用输入输出口&#xff0c;也就是我们俗称的IO口 根据使用场景&#xff0c;可配置为8种输入输出模式 引脚电平&#xff1a;0V~3.3V&#xff0c;部分引脚可容忍5V 数据0就是低电平&#xff0c…

【开源三方库】Easyui:基于OpenAtom OpenHarmony ArkUI深度定制的组件框架

万冬阳 公司&#xff1a;中国科学院软件所 小组&#xff1a;知识体系工作组 简介 Easyui是一套基于ArkTS语言开发的轻量、可靠的移动端组件库&#xff0c;它是对OpenAtom OpenHarmony&#xff08;以下简称“OpenHarmony”&#xff09; ArkUI进行深度定制的组件框架。Easyui可扩…

等保测评怎么做?有哪些流程?

现在很多信息系统想要上线都需要做等保测评&#xff0c;如果不能通过等保测评&#xff0c;不仅系统不允许上线&#xff0c;同时一旦出现了网络安全事件&#xff0c;相关企业还需要承担重要的责任。目前如果是为政府、事业单位、国企等开发系统&#xff0c;等保测评报告也是重要…

怎么在web显示模型的动态应力图?

要在网页上显示模型的动态应力图&#xff0c;需要执行几个步骤。动态应力图通常涉及有限元分析 (FEA) 模拟中的应力和应变数据的可视化&#xff0c;可以使用 Python、JavaScript 等工具以及 Three.js、Plotly 或 D3.js 等库来渲染图一个网页。以下是该过程的概述&#xff1a; …

互联网是如何运作的?以前端角度出发(b站objtube的卢克儿听课笔记)

1、你是如何用你的计算机设备发送数据和接受数据的呢&#xff1f; 例如我们是如何访问到哔哩哔哩的数据的 当你的设备开始连接到互联网时&#xff0c;会被分配一个IP地址。 而哔哩哔哩的服务器也接入到互联网&#xff0c;它也将被分配一个IP地址。 我们常说你访问某个网站&a…

数据库|Binlog故障处理之drainer周期性罢工

目录 一、背景 二、故障现象 三、分析过程 四、解决方案 五、思考 六、总结 一、背景 最近&#xff0c;用户反馈我们的生产环境TiDB集群的drainer频繁发生故障。故障表现为服务崩溃无法启动&#xff0c;或者数据在运行过程中丢失&#xff0c;给我们的业务带来了很大的困扰…

uniapp刻度尺的实现(swiper)滑动打分器

实现图&#xff08;百分制&#xff09;&#xff1a;滑动swiper进行打分&#xff0c;分数加减 <view class"scoring"><view class"toggle"><view class"score"><text>{{0}}</text><view class"scoreId&quo…

GitHub金矿:一套智能制造MES的源代码,可以直接拿来搞钱的好项目

目前国内智能制造如火如荼&#xff0c;工厂信息化是大趋势。如果找到一个工厂&#xff0c;搞定一个老板&#xff0c;搞软件的小虾米就能吃几年。 中国制造业发达&#xff0c;工厂林立&#xff0c;但是普遍效率不高&#xff0c;需要信息化提高效率。但是矛盾的地方在于&#xf…

开源:特殊的垄断

免责声明&#xff1a;本博客旨在分享我对开源策略的理解和体会&#xff0c;不代表任何组织或机构的立场或观点&#xff0c;也不构成任何商业或投资的建议或担保。本博客的内容可能存在错误或遗漏&#xff0c;也可能随着时间的推移而变得过时或不适用。请在使用或依赖本博客的内…

4、FFmpeg命令行操作2

三、ffprobe命令 ffprobe命令- ffprobe用来查看多媒体文件的信息 常用命令如下所示: ffprobe -show_packets input.mp4 //获取文件信息并显示文件中每个帧的包信息(包含audio和video包),如下图所示: codec_type : 帧类型&#xff0c;如视频包、音频包等 stream_index : 多媒体的…

2023 ChinaJoy后,Flat Ads成为游戏、社交出海的新选择

今年ChinaJoy 展会&#xff0c;共吸引了来自世界各地的 500 多家企业参展&#xff0c;预计吸引超过33万人次参观。ChinaJoy年年有&#xff0c;那今年对于行业来说有什么新变化呢&#xff1f; 01 出海热潮不减&#xff0c;新增客户明显提升 据不完全统计&#xff0c;展会期间前…

雨云 宿迁 14900KF 高防云服务器性能测评

雨云游戏云上线了用I9 13900KF做CPU的VPS服务器&#xff0c;雨云游戏云VPS的14900KF和13900KF机型是纯大核的&#xff08;屏蔽小核&#xff09;保证你的VPS不会被分配到小核上而导致性能下降&#xff0c;水冷散热&#xff0c;超频至6.3Ghz&#xff0c;超高单核性能。 适合开我…

Django快速入门(一)

Django三板斧 1. 基本使用 三板斧: HttpResponse,render,redirect from django.shortcuts import HttpResponse,render,redirect# 一. 返回字符串类型的数据 return HttpResponse(字符串) # 二. 返回HTML文件 # 1. 动态HTML页面: return render(request,login.html) def ab…

Unity 3D 调整cube的颜色

1.选中Assets后&#xff0c;右键->Create->Material 2.调整Material的颜色&#xff0c;然后将Material拖到对应的cube上

家用工作站方案:ThinkBook 14 2023 版

本篇文章聊聊今年双十一&#xff0c;我新购置的家用工作站设备&#xff1a;ThinkBook 14 2023&#xff0c;一台五千元价位&#xff0c;没有显卡的笔记本。我为什么选择它&#xff0c;它又能做些什么。 写在前面 2021 年年中的时候&#xff0c;我写过一篇《廉价的家用工作站方…

【深入浅出Spring原理及实战】「夯实基础系列」360全方位渗透和探究Spring配置开发实战详解

360全方位渗透和探究Spring配置开发实战详解 Spring对于配置的转折点Xml配置 vs Java配置Xml配置模式的优点Xml配置模式的缺点Java配置模式的优点Java配置模式的缺点 Java编程配置流程配置代码案例 组件注入Bean注解配置自动扫描包路径和规则Filter常用的拦截类型FilterType.AS…