#include<iostream>
#include<vector>
using namespace std;
vector<int> add(vector<int> v1,vector<int> v2) //大整数加法
{
int res=0; //表示进位
vector<int> v;
for(int i=0;i<v1.size()||i<v2.size();i++)
{
if(i<v1.size()) res+=v1[i]; //如果i已经超过vector范围,则不用加了
if(i<v2.size()) res+=v2[i];
v.push_back(res%16);
res/=16;
}
return v;
}
int main() {
int n;
scanf("%d",&n);
char alph[6]={'a','b','c','d','e','f'};
vector<int> v1,v2;
while(n--)
{
string a,b;
cin>>a>>b;
v1.clear();
v2.clear();
for(int i=a.size()-1;i>=0;i--)
{
if(a[i]>='a'&&a[i]<='f')
{
v1.push_back(a[i]-'0'-39);
}
else v1.push_back(a[i]-'0');
}
for(int i=b.size()-1;i>=0;i--)
{
if(b[i]>='a'&&b[i]<='f')
{
v2.push_back(b[i]-'0'-39);
}
else v2.push_back(b[i]-'0');
}
vector<int> A;
A.clear();
A=add(v1,v2);
for(int i=A.size()-1;i>=0;i--)
{
if(A[i]>=10){
cout<<alph[A[i]-10];
}
else cout<<A[i];
}
cout<<endl;
}
return 0;
}
//本题其实就是大整数加法+处理a-f和10-15的对应关系
//需要注意两个加数的长度可能不一致,如果没有注意判断会出现错误
//主要是大整数加法的模板
07-14
343
10-02
100
09-28
1110
10-02
144
09-19
2388