Мне нужно создать код, который принимает 1-6 бит двоичного кода, наполняет самые значащие биты 0, если строка уже не 6, и сравнивает 2 пакета из 3 бит с помощью операции XOR. Выводы странные, я думаю, это потому, что я сравниваю целое число 0, а не двоичное число 0 при выполнении XOR, и это бесполезно.Как представить целое число в двоичном формате, чтобы я мог сравнивать с помощью XOR?
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;
Этот код является беспорядком. Начните с более подробного описания того, что вам нужно делать. Например. действительно ли вы вводите двоичное число, например 101010, или обычное десятичное число, например 1234? – deviantfan
да его просто двоичное число как вход – adamvincent
И вам нужно использовать xor для сравнения и печати 0 для каждой равной цифры и 1 для каждой цифры без равенства? – deviantfan