バイナリの 1 ~ 6 ビットを取り、文字列がまだ 6 でない場合は最上位ビットに 0 を詰め込み、XOR 演算を使用して 3 ビットの 2 つのパケットを比較するコードを作成する必要があります。XOR を実行しているときに 2 進数の 0 ではなく、整数の 0 を比較しているため、出力がおかしいと思います。
char binary[300];
cin >> binary;
int size = strlen(binary);
//cout << "Size: " << size << endl;
int a,b,c,d,e,f;
if(size == 1){
a = 0;
b = 0;
c = 0;
d = 0;
e = 0;
f = binary[0];
cout << a^d << b^e << c^f << endl;
return 0;
}
if(size == 2){
a = 0;
b = 0;
c = 0;
d = 0;
e = binary[0];
f = binary[1];
cout << a^d << b^e << c^f << endl;
return 0;
}
if (size == 3){
a = 0;
b = 0;
c = 0;
d = binary[0];
e = binary[1];
f = binary[2];
cout << a^d << b^e << c^f << endl;
return 0;
}
if (size == 4){
a = 0;
b = 0;
c = binary[0];
d = binary[1];
e = binary[2];
f = binary[3];
cout << a^d << b^e << c^f << endl;
return 0;
}
if (size == 5){
a = 0;
b = binary[0];
c = binary[1];
d = binary[2];
e = binary[3];
f = binary[4];
cout << a^d << b^e << c^f << endl;
return 0;
}
if (size == 6){
a = binary[0];
b = binary[1];
c = binary[2];
d = binary[3];
e = binary[4];
f = binary[5];
cout << a^d << b^e << c^f << endl;
return 0;
}
return 0;