Cita:
Iniciado por kutcher Excelente observación leosansan y ahora paso a explicar porque funciona,
como pueden notar nos encontramos ante un comportamiento indefinido en el lenguaje C en este caso con respecto al operador de desplazamiento a la izquierda:
.................................................. ........
Se espera como resultado el cero, debido a que los bits que salen por la izquierda se pierden, los que entran por la derecha se rellenan con ceros pero en la expresión que utilizo eso no sucede ocurre una especie de rotación
.................................................. ........
Excelente explicación amigo kutcher, pero en mi ordenata se obtiene el cero:
Cita:
Iniciado por kutcher Y en vista de todo esto expongo otra opción pero utilizando otro método para identificar los dígitos, como van a ver hago uso del producto de los números primos:
Código C++:
Ver originalint primos[10] = {2, 3, 5, 7, 11, 13, 17, 23, 29, 31};
También puedes usar los números de la sucesión de Fibonacci no repes inicialmente:
Código C++:
Ver originalint primos[10] = {1,2, 3, 5, 13, 21, 34, 55, 89, 144};
¡¡¡Saluditos!!!