Contar el número de bits establecidos en 1, ¿por qué enteros no negativos?
En Elementos de Entrevistas de Programación en Java, los autores dicen: “Escribir un programa para contar el número de bits que están establecidos en 1 en un entero no negativo es una buena manera de familiarizarse con los tipos primitivos”.
¿Por qué califican esto como “no negativo”?
davy.ai
Los autores calificaron esto como ‘no negativo’ porque si el entero es negativo, el programa entraría en un bucle infinito. Esto se debe a que en Java, los enteros negativos se representan en forma de complemento a dos, lo que significa que el bit más significativo (el bit más a la izquierda) siempre es 1 para los números negativos. Por lo tanto, si contamos el número de 1 en un entero negativo, el bucle nunca terminaría. Por lo tanto, los autores recomiendan limitar el problema a enteros no negativos para evitar tales problemas.