#include <cstdio>
#include <iostream>
#include <cstdlib>
#include <algorithm>
#include <cstring>
#include <vector>
#include <stack>
#include <queue>
#include <cstdlib>
#include <iostream>
#include <cstring>
#include <string>
#include <cmath>
#include <sstream>
using namespace std;
string hex_to_binary(string number)
{
string binary1="";
for(int i=0;i<number.length();++i)
{
switch (number[i])
{
case '0':
binary1 += "0000";break;
case '1':
binary1 += "0001";break;
case '2':
binary1 += "0010";break;
case '3':
binary1 += "0011";break;
case '4':
binary1 += "0100";break;
case '5':
binary1 += "0101";break;
case '6':
binary1 += "0110";break;
case '7':
binary1 += "0111";break;
case '8':
binary1 += "1000";break;
case '9':
binary1 += "1001";break;
case 'A':
binary1 += "1010";break;
case 'B':
binary1 += "1011";break;
case 'C':
binary1 += "1100";break;
case 'D':
binary1 += "1101";break;
case 'E':
binary1 += "1110";break;
case 'F':
binary1 += "1111";break;
}
}
return binary1;
}
int main()
{
int tst_cases;
cin>>tst_cases;
while(tst_cases--)
{
string op;
string number1,number2;
cin>>number1>>op>>number2;
int num1 = stoi(number1, 0, 16);
int num2 = stoi(number2, 0, 16);
int result;
if(op=="+")
result=num1+num2;
else
result=num1-num2;
string s1=hex_to_binary(number1);
string s2=hex_to_binary(number2);
while(s1.length()<13)
s1="0"+s1;
while(s2.length()<13)
s2="0"+s2;
printf("%s %c %s = %d\n",s1.c_str(),op[0],s2.c_str(),result);
}
return 0;
}
I2luY2x1ZGUgPGNzdGRpbz4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGxpYj4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGNzdHJpbmc+CiNpbmNsdWRlIDx2ZWN0b3I+CiNpbmNsdWRlIDxzdGFjaz4KI2luY2x1ZGUgPHF1ZXVlPgojaW5jbHVkZSA8Y3N0ZGxpYj4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0cmluZz4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGNtYXRoPgojaW5jbHVkZSA8c3N0cmVhbT4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJpbmcgaGV4X3RvX2JpbmFyeShzdHJpbmcgbnVtYmVyKQp7CiAgICBzdHJpbmcgYmluYXJ5MT0iIjsKICAgIGZvcihpbnQgaT0wO2k8bnVtYmVyLmxlbmd0aCgpOysraSkKICAgIHsKICAgICAgICBzd2l0Y2ggKG51bWJlcltpXSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBjYXNlICcwJzoKCQkJCQkJCWJpbmFyeTEgKz0gIjAwMDAiO2JyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgJzEnOgogICAgICAgICAgICAgICAgICAgICAgICBiaW5hcnkxICs9ICIwMDAxIjticmVhazsKICAgICAgICAgICAgICAgICAgICBjYXNlICcyJzoKICAgICAgICAgICAgICAgICAgICAgICAgYmluYXJ5MSArPSAiMDAxMCI7YnJlYWs7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAnMyc6CiAgICAgICAgICAgICAgICAgICAgICAgIGJpbmFyeTEgKz0gIjAwMTEiO2JyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgJzQnOgogICAgICAgICAgICAgICAgICAgICAgICBiaW5hcnkxICs9ICIwMTAwIjticmVhazsKICAgICAgICAgICAgICAgICAgICBjYXNlICc1JzoKICAgICAgICAgICAgICAgICAgICAgICAgYmluYXJ5MSArPSAiMDEwMSI7YnJlYWs7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAnNic6CiAgICAgICAgICAgICAgICAgICAgICAgIGJpbmFyeTEgKz0gIjAxMTAiO2JyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgJzcnOgogICAgICAgICAgICAgICAgICAgICAgICBiaW5hcnkxICs9ICIwMTExIjticmVhazsKICAgICAgICAgICAgICAgICAgICBjYXNlICc4JzoKICAgICAgICAgICAgICAgICAgICAgICAgYmluYXJ5MSArPSAiMTAwMCI7YnJlYWs7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAnOSc6CiAgICAgICAgICAgICAgICAgICAgICAgIGJpbmFyeTEgKz0gIjEwMDEiO2JyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgJ0EnOgogICAgICAgICAgICAgICAgICAgICAgICBiaW5hcnkxICs9ICIxMDEwIjticmVhazsKICAgICAgICAgICAgICAgICAgICBjYXNlICdCJzoKICAgICAgICAgICAgICAgICAgICAgICAgYmluYXJ5MSArPSAiMTAxMSI7YnJlYWs7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAnQyc6CiAgICAgICAgICAgICAgICAgICAgICAgIGJpbmFyeTEgKz0gIjExMDAiO2JyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgJ0QnOgogICAgICAgICAgICAgICAgICAgICAgICBiaW5hcnkxICs9ICIxMTAxIjticmVhazsKICAgICAgICAgICAgICAgICAgICBjYXNlICdFJzoKICAgICAgICAgICAgICAgICAgICAgICAgYmluYXJ5MSArPSAiMTExMCI7YnJlYWs7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAnRic6CiAgICAgICAgICAgICAgICAgICAgICAgIGJpbmFyeTEgKz0gIjExMTEiO2JyZWFrOwogICAgICAgICAgICB9CgoKICAgIH0KICAgIHJldHVybiBiaW5hcnkxOwp9CgppbnQgbWFpbigpCnsKICAgIGludCB0c3RfY2FzZXM7CiAgICBjaW4+PnRzdF9jYXNlczsKICAgIHdoaWxlKHRzdF9jYXNlcy0tKQogICAgewogICAgIHN0cmluZyBvcDsKICAgIHN0cmluZyBudW1iZXIxLG51bWJlcjI7CiAgICBjaW4+Pm51bWJlcjE+Pm9wPj5udW1iZXIyOwoKCWludCBudW0xID0gc3RvaShudW1iZXIxLCAwLCAxNik7CglpbnQgbnVtMiA9IHN0b2kobnVtYmVyMiwgMCwgMTYpOwoKICAgIGludCByZXN1bHQ7CiAgICBpZihvcD09IisiKQogICAgICAgcmVzdWx0PW51bTErbnVtMjsKICAgIGVsc2UKICAgICAgIHJlc3VsdD1udW0xLW51bTI7CgoKICAgIHN0cmluZyBzMT1oZXhfdG9fYmluYXJ5KG51bWJlcjEpOwogICAgc3RyaW5nIHMyPWhleF90b19iaW5hcnkobnVtYmVyMik7CgogICAgd2hpbGUoczEubGVuZ3RoKCk8MTMpCiAgICAgICAgczE9IjAiK3MxOwogICAgd2hpbGUoczIubGVuZ3RoKCk8MTMpCiAgICAgICAgczI9IjAiK3MyOwoKICAgICAgICBwcmludGYoIiVzICVjICVzID0gJWRcbiIsczEuY19zdHIoKSxvcFswXSxzMi5jX3N0cigpLHJlc3VsdCk7CiAgICB9CgpyZXR1cm4gMDsKfQo=