¡Hola! Estaba buscando en este código en http://www.gnu.org/software/m68hc11/examples/primes_8c-source.html¿Por qué usar hex?
me di cuenta que en algunas situaciones se utilizan números hexadecimales, al igual que en la línea 134:
for (j = 1; val && j <= 0x80; j <<= 1, q++)
Ahora ¿por qué habría que utilizar el 0x80? No soy tan bueno con el hexadecimal, pero encontré un hexágono en línea a decimal y me dio 128 de 0x80.
También antes de la línea 134, en la línea 114 que tienen la siguiente:
small_n = (n & 0xffff0000) == 0;
El hexagonal para decimal me dio 4294901760 para ese número hexadecimal. ¿Entonces aquí en esta línea están haciendo un poco AND y comparando el resultado con 0?
¿Por qué no usar el número? ¿Puede alguien explicar y dar ejemplos de otras situaciones?
También he visto grandes líneas de código en las que es sólo números hexagonales y en realidad nunca entendió por qué :(
Corrección secundaria en el segundo ejemplo: elimina los dos bytes inferiores de un número de cuatro bytes. La eliminación de los cuatro bytes inferiores sería simplemente "small_n = 0;". –
D'Oh! Ya sabes, estaba debatiendo entre escribir "4 dígitos" y "dos bytes", así que, naturalmente, los fusioné en una declaración incorrecta ... –