蓝桥杯 十六进制转八进制

Posted clint大大

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了蓝桥杯 十六进制转八进制相关的知识,希望对你有一定的参考价值。

#include<string>
#include<iostream>
#include<stdlib.h>

using namespace std;

void change(string a[], int n)

	string b;
	for (int i = 0; i < a[n].size(); i++)
	
		switch (a[n][i])
		

		case '0':b += "0000"; break;
		case '1':b += "0001"; break;
		case '2':b += "0010"; break;
		case '3':b += "0011"; break;
		case '4':b += "0100"; break;
		case '5':b += "0101"; break;
		case '6':b += "0110"; break;
		case '7':b += "0111"; break;
		case '8':b += "1000"; break;
		case '9':b += "1001"; break;
		case 'A':b += "1010"; break;
		case 'B':b += "1011"; break;
		case 'C':b += "1100"; break;
		case'D':b += "1101"; break;
		case'E':b += "1110"; break;
		case 'F':b += "1111"; break;
		default:break;
		
	//16进制转化为2进制
	if (b.size() % 3 == 1)
	
		b = "00" + b;
	
	if (b.size() % 3 == 2)
	
		b = "0" + b;
	//2进制转化为8进制
	int flag = 0;//设个东西把转成八进制后前面那个0去掉
	for (unsigned int i = 0; i < b.size() - 2; i = i + 3)
	
		int p = 4 * (b[i] - '0') + 2 * (b[i + 1] - '0') + (b[i + 2] - '0');
		if (p)
		
			flag = 1;
		
		if (flag)
		
			cout << p;
		

	



int main()

	int n;
	cin >> n;//几个16进制数
	string a[30];
	for (int i = 0; i < n; i++)
	
		cin >> a[i];
	
	for (int i = 0; i < n; i++)
	
		change(a, i);
		cout << endl;
	
	return 0;

小白流泪,做了一个小时。= =。

以上是关于蓝桥杯 十六进制转八进制的主要内容,如果未能解决你的问题,请参考以下文章

蓝桥杯基础训练:十进制转十六进制

Java蓝桥杯基础练习

蓝桥杯- 基础练习:十进制转十六进制

蓝桥杯 基础练习 十六进制转八进制

蓝桥杯 基础练习 十进制转十六进制

蓝桥杯- 基础练习:十六进制转十进制