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

Respuestas a la pregunta(4)

Su respuesta a la pregunta