首页 > 编程语言 >C++进制转换

C++进制转换

时间:2024-08-08 18:24:42浏览次数:12  
标签:转换 进制 int max s36 C++ include p36 cout

这篇代码是我早就打出来的,当时放在百度网盘,本地放在硬盘上,后来硬盘坏了,最近清网盘的时候才想起来,所以赶紧改了改就发出来了

这也是我比较早的代码了,所以记得并不清楚,改也只改了一点,当时不爱打注释,具体思路也忘得一干二净,所以直接把代码贴出来了(好像屁话有点多)

Code:

#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
int a=0;
char d[] = { '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' };
int leave(char x[], int y) {
	int h = 0, k = strlen(x), max=-1, q[1919];
	if(y>16) {
		a = -1;
	}
	for (int j = k; j > 0; j--) {
		if ('0' <= x[j - 1] && x[j - 1] <= '9') {
			h += (x[j - 1] - 48) * pow(y, k - j);
		} else if ('A' <= x[j - 1] && x[j - 1] <= 'F') {
			h += (x[j - 1] - 55) * pow(y, k - j);
		}
		for(int i=0; i<k; i++) {
			if(x[i]=='A'||x[i]=='B'||x[i]=='C'||x[i]=='D'||x[i]=='E'||x[i]=='F') {
				q[i]=x[i]-55;
			} else {
				q[i]=x[i]-48;
			}
			if(q[i]>max) {
				max=q[i];
			}
		}
	}
	if(max>y) {
		a = -1;
		return a;
	}
	return h;
}
void back(int a, int b) {
	if (a == -1) {
		cout << "DATA ERROR!(错误!)";
		return;
	}
	int r;
	r = a % b;
	a /= b;
	if (a) {
		back(a, b);
	}
	cout << d[r];
	return;
}
int main() {
	char l[100000]= {0, 0, 0};
	int s, p;
	cout << "进制转换器v2.0 Made By 2024 August 8th ." << endl;
	cout << "请输入待转换进制的数据和待转换的进制(仅支持2~36进制的正整数!!!(先输入待转换进制的数据,再输入待转换的进制!!))" << endl;
	cin >> l >> s;
	while(s<2||s>36) {
		cout<<endl<<"输入的待转换的进制不在2~36之间!";
		Sleep(1000);
		cout<<endl<<"重新输入待转换的进制:    ";
		cin>>s;
	}
	if(s<2||s>36)	cout<<endl;
	cout << "请输入目标进制" << endl;
	cin >> p;
	while(p<2||p>36) {
		cout<<endl<<"输入的待转换的进制不在2~36之间!";
		Sleep(1000);
		cout<<endl<<"重新输入目标进制:    ";
		cin>>p;
	}
	if(p<2||p>36)	cout<<endl;
	cout << "将 " << s << " 进制的 " << l << " 转换成 " << p << " 进制的结果为 ";
	back(leave(l, s), p);
	return 0;
}

标签:转换,进制,int,max,s36,C++,include,p36,cout
From: https://blog.csdn.net/j5486545648564/article/details/141033694

相关文章

  • 电话号码转换 - 华为机试真题题解(Java)
    考试平台:时习知分值:200分(第二题)考试时间:两小时(共2题)题目描述将电话号码转换,需要实现如下的中英文电话号码转换:输入的字符串中每个数字对应为中文数字中的英文单词,如Double表示两个数字相同。将输入的中文数字字符串转换为英文单词的电话号码。若输入不合法,则输出......
  • 图片表格内容识别转换-II - 华为机试真题题解(Java)
    考试平台:时习知分值:200分考试时间:两小时(共2题)题目描述华为云推出了“通用表格识别”服务,可以将图片表格转换成文本数据。请你将文本数据进一步转换为“文本型表格”,如下图所示:输入现给出一个图片表格的文本数据:每行数据形如line3col1A,表示第3行第1列的单......
  • 实时人脸换脸——基于C++与Onnxruntime调用GPU实现实时换脸
    1、概述1.1算法概述人脸换脸是一种使用人工智能技术来实时或离线地将视频中的人脸替换成另一张人脸的技术。近年来,随着深度学习技术的发展,这一领域取得了显著进展。常见的人脸换脸项目有:Deepfake:这是最著名的换脸算法之一,使用深度学习技术合成人脸图像,通常使用卷积神......
  • Depth Anything强大的单目深度估计Python与C++模型部署
    引言最近看到一个叫DepthAnything单目深度估计模型火了,于是抽空把代码和模型下载下来体验了一下,发现确实是很强大。论文链接:https://arxiv.org/pdf/2401.10891.pdf代码链接:https://github.com/LiheYoung/Depth-Anything项目主页:https://depth-anything.github.io/本......
  • 在python中将二维数组转换为彩色图像
    我有像这样的2d整数列表:list1=[[1,30,50],[21,45,9],[97,321,100]]下一步我要将其转换为numpy数组:myarr=np.asarray(list1)下一步我将使用PIL将其转换为图像,如下所示:img=Image.fromarray(myarr,"I")img.save("my.png")问题是我不想要灰......
  • Python 汉字区位码、字符串 相互转换
    Python汉字区位码、字符串相互转换区位码简介GB2312所有字符放在一张94x94的矩阵中,矩阵中的每个位置对应一个字符(有的位置是空的,没有字符)。区位码为十进制四位数,前后两位分别代表该字符在矩阵中的行、列坐标(均从1算起),如4528“图”字,为45行、28列上的字符。能通过对区位码进......
  • Mac OS 批量将Java编码iso-8859-1( english_us8859)转换为utf-8格式
    !/bin/bash#指定源目录SOURCE_DIR="./serialMonitor"#遍历源目录下所有.java文件functionconvert_to_utf8(){localfile="$1"encoding=`file-I${file}|awk-F='{print$2}'`echo"encoding:$encoding"if[[&qu......
  • C++ - 二级指针动态内存申请与释放
    C语言描述:#include"stdio.h"#include"stdlib.h"#include"assert.h"//二维数组内存申请int**createArray2D(introw,intclos){ int**pArray=(int**)malloc(sizeof(int*)*row); assert(pArray); for(inti=0;i<row;i++) { ......
  • 一文搞懂C/C++常用编译器
    1.C++编译器介绍1.1.MSVC1.1.1.VisualC++与VisualStudio的版本对应关系1.1.2.工具链的主要工具1.2.GCC1.2.1.GCC的主要优点1.2.2.GCC的常用工具1.2.3.MinGW1.3.Clang/LLVM1.3.1.Clang介绍1.3.2.Clang与LLVM的关系1.3.3.Clang/LLVM与GCC2.......
  • C++ char*类型与vector类型的相互转换
    char*类型与vector<char>类型的相互转换很多时候需要使用动态的字符串,但是char*难以完成相应的扩容操作,而动态数组vector则可以简单地完成,结合二者特性就可以完成动态字符串,同时,也需要二者类型的相互转换:char*转vector<char> vector<char>buffer(ch,ch+4);vector<cha......