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

📄 十六异或.cpp

📁 用C++实现的十六制易或运算的加密算法
💻 CPP
字号:
// 作业:进行两个十六进制数的异或运算
// 作者:02103409班 10号 郭卫军
// 日期:2005.3.18
//#include "stdafx.h"
#include<iostream.h>
void Creat(char p[],int &n){  //输入十六进制数的字符串函数
	char chdata;
	int i;
	i=0;
	cin>>chdata;
    while(chdata!='/'){      //当输入'/'时输入结束
		p[i]=chdata;
		i++;
		cin>>chdata;
		}
	n=i;  //计算字符串的长度
}
void  Convert(char p[],int n){  //将十六进制数的字符串转换成相应的十六进制数
	for (int i=0;i<n;i++){
		if(p[i]>='0' && p[i]<='9')//当平p[i]在'0'到'9'之间,p[i]就减去48
			p[i]=p[i]-48;
		else if(p[i]>='A' && p[i]<='F')//当平p[i]在'A'到'F'之间,p[i]就减去48
			p[i]=p[i]-55;
		else if(p[i]>='a' && p[i]<='f')//当平p[i]在'a'到'f'之间,p[i]就减去48
			p[i]=p[i]-87;
	}
}
void Operate(char A[],char B[],char C[],int a,int b,int &c){//异或运算函数
	int temp;                            
	if(a>b){             
		c=a;
		temp=a-b;
		for(int i=a-1;i>=temp;i--)
			C[i]=A[i]^B[i-temp];//从右向左运算
		for(i=temp-1;i>=0;i--)
			C[i]=A[i];          //将左边多的十六进制数平移下来
	}
	else if(a<b){
		c=b;
		temp=b-a;
		for(int j=b-1;j>=temp;j--)
			C[j]=A[j-temp]^B[j];
		for(j=temp-1;j>=0;j--)
			C[j]=B[j];
	}
	else{
		c=a;
		for(int k=a-1;k>=0;k--)
			C[k]=A[k]^B[k];
		}
}
	
void Show(char p[], int n){      //显示结果
	for(int i=0;i<n;i++){
		if(int(p[i])>9 && int(p[i])<16){  //将10到16的数
			p[i]=int(p[i])+55;           // 转换到相应的'A'到'F'
		    cout<<p[i];
		}
		else
			cout<<(int)p[i];
	}
	cout<<endl;
}

int main(int argc, char* argv[])
{
    char Fir[50],Sec[50],Thr[50];//Fir和Sec是是十六进制数,Thr是异或结果
	int num1,num2,num3;
	num1=num2=num3=0;
	cout<<"*************************************************************"<<endl;
	cout<<"注意:在输入十六进制数时,输入斜杠'/'后,输入结束."<<endl;
	cout<<"*************************************************************"<<endl;
	cout<<"输入第一个十六进制数:"<<endl;
    Creat(Fir,num1);   //输入第一个十六进制数
	cout<<"输入第二个十六进制数:"<<endl;
	Creat(Sec,num2);   //输入第二个十六进制数
	Convert(Fir,num1); //将十六进制数的字符串转换成相应的十六进制数
	Convert(Sec,num2); //同上
	Operate(Fir,Sec,Thr,num1,num2,num3);//进行异或运算
	cout<<"输出结果:"<<endl;
	Show(Thr,num3);   //显示输出结果
	return 0;
}

⌨️ 快捷键说明

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