⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 101.cpp

📁 进制转换,该程序实现进制之间的转换 可以在二进制、八进制、十进制、十进制之间转换
💻 CPP
字号:
#include<iostream>
#include<math.h>
using namespace std;

void binary(int number) 
{
   int remainder;
   if(number <= 1) {
       cout << number;
    return ;
   }
   remainder = number%2;
   binary(number >> 1);    
   cout << remainder;
}

////////////////////////////////////////////
void octal(int number) 
{
   int remainder;
   if(number <= 8) {
       cout << number;
    return ;
   }
   remainder = number%8;
   octal(number >> 3);    
   cout << remainder;
}

///////////////////////////////////////////////
void hex(int number) 
{
	int i=0;
	int hex[10]={-1,-1,-1,-1,-1,-1,-1,-1,-1,-1};
    char hex_word[6]={'A','B','C','D','E','F'};
	while(number>= 16)
	{
		hex[i] = number % 16;
		number=number/16;
		i++;
	}
	hex[i+1]=number;
	for(i=9;i>=0;i--)
	{
		if(hex[i]!= -1)
		{
			if(hex[i] >=10 && hex[i] <=15)
				cout << hex_word[hex[i]-10];
			else
				cout << hex[i];
		}
	}
	return ;  
}

//////////////////////////////////////////////////////////
double secondbinary()
{
	char *bin=NULL; 
	bin = new char[100]; 
	int i=0,j=0,p=0,c=0,ninus=-1; 
	int number=0;
	cin.getline(bin,100); 
	while(*(bin+i+p) != '\0') 
	{ 
		if(*(bin+i+p) == '.')
			c=1;
		if(c==1 && *(bin+i+p) != '.')
		{
			number=number+int(*(bin+i+p)-48)*pow(2,ninus); 
			ninus--;
			p++;
		}
		else
			i++;
	}
	if(c==1)
		i--;
	if(i==1)
		number+=int(*(bin+0)-48)*pow(2,0); 
	else
		for(j=i-1;j>=0;j--)  
			number+=int(*(bin+j)-48)*pow(2,i-1-j); 
		return number;
}

//////////////////////////////////////////////////////////
double secondoctal()
{
	char *bin=NULL; 
	bin = new char[100]; 
	int i=0,j=0,p=0,c=0,ninus=-1;
	int number=0;
	cin.getline(bin,100);
	while(*(bin+i+p) != '\0') 
	{ 
		if(*(bin+i+p) == '.')
			c=1;
		if(c==1 && *(bin+i+p) != '.')
		{
			number=number+(int(*(bin+i+p)-48)*pow(8,ninus)); 
			ninus--;
			p++;
		}
		else
			i++;
	}
	if(c==1)
		i--; 
	if(i==1)
		number+=(int(*(bin+0)-48)*pow(8,0)); 
	else
		for(j=i-1;j>=0;j--)  
			number=number+(int(*(bin+j)-48)*pow(8,i-1-j));
        return number;
}

///////////////////////////////////////////////////////////
double check(char word)
{
	const double table[6]={10,11,12,13,14,15};
	if(word >='a' && word <= 'f')
		return table[word-'a'];
	else
		if(word >='A' && word <= 'F')
			return table[word-'A'];
		else
			return word-48;
}

double secondhex()
{
	char *bin=NULL; 
	bin = new char[100]; 
	int i=0,j=0,p=0,c=0,ninus=-1; 
	int number=0;
	cin.getline(bin,100); 
	while(*(bin+i+p) != '\0')  
	{ 
		if(*(bin+i+p) == '.')
			c=1;
		if(c==1 && *(bin+i+p) != '.')
		{
			number+=check(*(bin+i+p))*pow(16,ninus); 
			ninus--;
			p++;
		}
		else
			i++;
	}
	if(c==1)
		i--;
	if(i==1)
		number+=check(*(bin+j))*pow(16,0); 
	else
		for(j=i-1;j>=0;j--)  
		{
			number+=check(*(bin+j))*pow(16,i-1-j); 
		}
		return number; 
}



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -