Тот же вывод для htonl ()и ntohl ()для целого числа

Я запустил следующую программу на машине с маленьким -порядком байтов [LE] [Linux, процессор Intel]. Я не могу объяснить 3 вывода в приведенном ниже фрагменте кода. Поскольку машина LE, значение aсохраняется как 0x78563412. При печати отображается его фактическое значение. Поскольку это машина LE, я ожидаю, что ntohl()не будет -операции и отображения 0x78563412, что она и делает. Однако я ожидаю 0x12345678для второго оператора печати, содержащего htonl(). Может кто-нибудь, пожалуйста, помогите мне понять, почему они одинаковы?

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;
}

Выход:

Original - 0x12345678
Network - 0x78563412
Host - 0x78563412
11
задан Bhaskar 10 July 2012 в 23:11
поделиться