¿Cómo doblar una cantidad de dígitos binarios en un número entero? Por ejemplo, si bin (x) = "1001", bin (y) debe ser "11000011". ¿Hay algún algoritmo inteligente y rápido?Duplicar dígitos binarios
ACTUALIZACIÓN: Aquí es una solución elegante:
''.join([''.join(i) for i in zip(X,X)])
donde X es bin (int_x) [2:]
Sin embargo, me interesa de un modo más rápido y por los enteros de cualquier tamaño. Tal vez una transformación aritmética debería ayudar.
@Daniel Trebbien: gracias por la aclaración. Mi error. – dnagirl
¿Cuál debería ser la salida para entrada no simétrica, p. si la entrada de 8 (b1000) da 3 (b00000011) o 192 (b11000000)? –
Si la entrada es b0 + 2 * b1 + 4 * b2 + 8 * b3 + ... entonces creo que @psihodelia quiere b0 + 2 * b0 + 4 * b1 + 8 * b1 + 16 * b2 + 32 * b2 + ... –