La misma salida para htonl () y ntohl () en un entero
Ejecuté el siguiente programa en la máquina little-endian [LE] [Linux, procesador Intel]. No puedo explicar las 3 salidas en el siguiente fragmento de código. Como la máquina es LE, el valor dea
se almacena como0x78563412
. Al imprimir, está mostrando su valor real. Ya que es una máquina LE, esperontohl()
ser un no-op y mostrar0x78563412
, lo que está haciendo. Sin embargo, espero0x12345678
para la segunda declaración de impresión que contienehtonl()
. ¿Puede alguien ayudarme, por favor, a entender por qué son iguales?
int main()
{
int a = 0x12345678;
printf("Original - 0x%x\n", (a));
printf("Network - 0x%x\n", htonl(a));
printf("Host - 0x%x\n", ntohl(a));
return 0;
}
Salida:
Original - 0x12345678
Network - 0x78563412
Host - 0x78563412