Htonl 함수 정보
Htonl 은 로컬 바이트 순서를 네트워크 바이트 순서로 변환하는 것입니다.
네트워크 바이트 순서 (큰 꼬리 순서) 란 숫자가 메모리에 저장될 때 "높음-낮음, 낮음-높음" (즉, 한 수의 높은 바이트는 낮은 주소 단위에 저장되고, 낮은 바이트는 높은 주소 단위에 저장됨) 을 의미합니다. 그러나 컴퓨터의 메모리는 큰 꼬리 또는 작은 꼬리 순서로 데이터를 저장할 수 있습니다.
예를 하나 들어보죠.
Int a = 0x403214;
Intb = htonl (a);
이 코드를 VC++6.0 으로 디버깅했는데
& AMPA 의 값은 0x00 12ff44 입니다.
여기서 0x00 12ff44, 0x00 12ff45, 0x00 12ff46, 0x01
& ampb 값은 0x00 12ff40 입니다.
여기서 0x00 12ff40, 0x00 12ff438+0, 0x00 12ff42 및 0x0/kloc-
숫자가 작은 꼬리의 순서로 저장된 경우 이 수의 높은 바이트는 htonl 함수에 의해 호출된 후 완전히 새로운 숫자로 반전됩니다. 이 새 번호는 실제로 작은 꼬리의 순서로 기계에 저장되어 있지만, 원래 번호와 비교하면 큰 꼬리의 순서에 해당한다.
Long 유형의 0x40 은 0x 00 00 00 40, * * 4 바이트로 쓰여지고, htonl 을 호출한 후 4 바이트는 0x4000000 입니다.
마찬가지로 0x 00 00 00 40 은 htonl 을 호출한 후 0x0000 40, 즉 0x40 이 됩니다.