#include <iostream>
using namespace std;
// Función para invertir los bits de un número de 16 bits
unsigned short int reverseBits(unsigned short int num) {
unsigned short int reversed = 0;
for (int i = 0; i < 16; i++) {
reversed <<= 1; // Desplazar el resultado a la izquierda
reversed |= (num & 1); // Agregar el bit menos significativo de num
num >>= 1; // Desplazar num a la derecha
}
return reversed;
}
int main() {
unsigned short int num;
cout << "Ingrese un número (0-65535): ";
cin >> num;
// Invertir los bits del número
unsigned short int reversed = reverseBits(num);
// Comparar el número original con el número invertido
if (num == reversed) {
cout << num << " es un palíndromo a nivel de bits." << endl;
} else {
cout << num << " no es un palíndromo a nivel de bits." << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKLy8gRnVuY2nDs24gcGFyYSBpbnZlcnRpciBsb3MgYml0cyBkZSB1biBuw7ptZXJvIGRlIDE2IGJpdHMKdW5zaWduZWQgc2hvcnQgaW50IHJldmVyc2VCaXRzKHVuc2lnbmVkIHNob3J0IGludCBudW0pIHsKICAgIHVuc2lnbmVkIHNob3J0IGludCByZXZlcnNlZCA9IDA7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IDE2OyBpKyspIHsKICAgICAgICByZXZlcnNlZCA8PD0gMTsgLy8gRGVzcGxhemFyIGVsIHJlc3VsdGFkbyBhIGxhIGl6cXVpZXJkYQogICAgICAgIHJldmVyc2VkIHw9IChudW0gJiAxKTsgLy8gQWdyZWdhciBlbCBiaXQgbWVub3Mgc2lnbmlmaWNhdGl2byBkZSBudW0KICAgICAgICBudW0gPj49IDE7IC8vIERlc3BsYXphciBudW0gYSBsYSBkZXJlY2hhCiAgICB9CiAgICByZXR1cm4gcmV2ZXJzZWQ7Cn0KCmludCBtYWluKCkgewogICAgdW5zaWduZWQgc2hvcnQgaW50IG51bTsKICAgIGNvdXQgPDwgIkluZ3Jlc2UgdW4gbsO6bWVybyAoMC02NTUzNSk6ICI7CiAgICBjaW4gPj4gbnVtOwoKICAgIC8vIEludmVydGlyIGxvcyBiaXRzIGRlbCBuw7ptZXJvCiAgICB1bnNpZ25lZCBzaG9ydCBpbnQgcmV2ZXJzZWQgPSByZXZlcnNlQml0cyhudW0pOwoKICAgIC8vIENvbXBhcmFyIGVsIG7Dum1lcm8gb3JpZ2luYWwgY29uIGVsIG7Dum1lcm8gaW52ZXJ0aWRvCiAgICBpZiAobnVtID09IHJldmVyc2VkKSB7CiAgICAgICAgY291dCA8PCBudW0gPDwgIiBlcyB1biBwYWzDrW5kcm9tbyBhIG5pdmVsIGRlIGJpdHMuIiA8PCBlbmRsOwogICAgfSBlbHNlIHsKICAgICAgICBjb3V0IDw8IG51bSA8PCAiIG5vIGVzIHVuIHBhbMOtbmRyb21vIGEgbml2ZWwgZGUgYml0cy4iIDw8IGVuZGw7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0=