首页 > 学院 > 开发设计 > 正文

进制转换之字符串,字符数组的运用(代码未完全验证)

2019-11-08 02:13:47
字体:
来源:转载
供稿:网友

                                               八进制,十六进制与二进制之间的转换关系

                                                                           
#include<string>#include<iostream>using namespace std;void shift(string a){	string B[100];	string TO[100];	string num0 = "0000";	string num1 = "0001";	string num2 = "0010";	string num3 = "0011";	string num4 = "0100";	string num5 = "0101";	string num6 = "0110";	string num7 = "0111";	string num8 = "1000";	string num9 = "1001";	string A = "1010";	string B1 = "1011";	string C = "1100";	string D = "1101";	string E = "1110";	string F = "1111";	int allnum = a.length();	cout << allnum << endl;	//十六进制转二进制	for (int i = 0; i < allnum; i++)	{		switch (a[i])		{		case '0':B[i] = num0; break;		case '1':B[i] = num1; break;		case '2':B[i] = num2; break;		case '3':B[i] = num3; break;		case '4':B[i] = num4; break;		case '5':B[i] = num5; break;		case '6':B[i] = num6; break;		case '7':B[i] = num7; break;		case '8':B[i] = num8; break;		case '9':B[i] = num9; break;		case 'A':B[i] = A; break;		case 'B':B[i] = B1; break;		case 'C':B[i] = C; break;		case 'D':B[i] = D; break;		case 'E':B[i] = E; break;		case 'F':B[i] = F; break;		}	}	string abc ="";	for (int i = 0; i < allnum; i++)		abc = abc+B[i];	cout << abc << endl;	//取十六进制的二进制形式的三个一组    int all=abc.length();	cout << all << endl;	string hhh[100];	int j = 0;	int h = 0;	for (int i = all-1; i>=0; i--)	{			hhh[h]=hhh[h]+abc[i];			j++;			if (j == 3)			{				j = 0;				h++;			}	}	for (int i = 0; i <all/3 ;i++)	cout << hhh[i] << endl;	//将得到的0,1,三位数,转换为八进制	string Num[] = { "000", "001", "010", "011", "100", "101", "110", "111" };	string MMM;	for (int i = all/3; i >0; i--)	{		for (int j = 0; j < 8; j++)		{			if (hhh[i-1] == Num[j])				switch (j)			{				case 0:if(i!=all/3)cout << '0'; break;				case 1:cout << '4'; break;				case 2:cout << '2'; break;				case 3:cout << '6'; break;				case 4:cout << '1'; break;				case 5:cout << '5'; break;				case 6:cout << '3'; break;				case 7:cout << '7'; break;			}		}	}}void ShiftToEight(){	string num0 = "0000";	string num1 = "0001";	string num2 = "0010";	string num3 = "0011";	string num4 = "0100";	string num5 = "0101";	string num6 = "0110";	string num7 = "0111";}int main(){   	//string str;	// 设置一个终止符	//getline(cin, str, '#');	//cout << str[5] << ' ' << endl;	//cout << str.length() << endl;	//string a[100];	//a[0] = "212";	//a[1] = 'a';	//a[2] = '8';	//for (int i = 0; i < 3; i++)		//cout << a[i];	string o;	cin >> o;	shift(o);	system("pause");	return 0;}      十六进制转八进制主要思路是:先将十六进制数,转换为二进制的0,1形式。由于八进制是从二进制数最后往前每隔3个分为一组,所以将得到的十六进制0,1形式分成3个一组,再和八进制向对应。    注意字符串string 和字符串数组string[]的使用,switch中可以使用string
上一篇:无。。。

下一篇:图的存储方式一

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表