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 이 됩니다.

上篇: 호스트 aping 호스트 b 下篇: 휴대폰 판매 관리자로서 좋은 제안 부탁드립니다!
관련 내용