Red de conocimientos sobre prescripción popular - Remedios caseros - Entero largo de 4 bytes convertidos a decimal

Entero largo de 4 bytes convertidos a decimal

Todos los que han realizado sockets conocen la conversión de bytes de red. Los datos transmitidos en la red son un flujo de bytes puro, sin información de tipo, y el orden de bytes de la red suele ser grande a partir de la dirección baja; endian, es decir, el byte alto se transfiere primero, por lo que es coherente con el orden de almacenamiento de bytes locales de big endian y completamente opuesto al de little endian. Para garantizar la coherencia de los datos, es necesario convertir los datos locales al formato utilizado en la red y luego enviarlos. Después de la conversión, se utilizan los datos. Las funciones básicas de la biblioteca proporcionan funciones que pueden realizar la conversión de bytes, como htons() htonl() ntohs() ntohl(), donde n representa la red, h representa el host, htons() htonl() se usa para local Al convertir bytes a bytes de red, s representa corto, que opera en 2 bytes, y l representa largo, que opera en 4 bytes. De manera similar, ntohs( )ntohl( ) se utiliza al convertir bytes de red al formato nativo. Con la implementación del estándar c99, se han agregado nuevos tipos long long int y unsigned long long int a nuestro gran c, los cuales son de 64 bits. Definitivamente no funcionará si no lo giras, así que tendrás que encontrar una manera de hacerlo tú mismo. Por supuesto, hay muchas formas. Me gustaría utilizar una solución de analogía aquí para ver cómo hacer inferencias.

1. Definición del orden de bytes

El orden de bytes, como su nombre lo indica, es el orden de los bytes. En pocas palabras, es el orden en el que se almacenan datos de más de un tipo de byte. se almacena en la memoria. De hecho, la mayoría de las personas rara vez se ocupan directamente del orden de los bytes en el desarrollo real. Sólo en aplicaciones multiplataforma y de red la endianidad es una cuestión que debe tenerse en cuenta. Una migración de plataforma de Sun SPARC a Intel X86 provocó que nuestro programa encontrara un "problema de orden de bytes".

En todos los artículos que presentan el orden de bytes, se mencionará que el orden de bytes se divide en dos categorías: Big-Endian y Little-Endian. Las definiciones estándar de Big-Endian y Little-Endian se citan a continuación:

a) Little-Endian significa que los bytes de orden inferior se organizan en el extremo de dirección inferior de la memoria y los bytes de orden superior se organizan en el extremo de dirección inferior de la memoria. Los bytes de orden se organizan en el extremo superior de la dirección de la memoria.

b) Big-Endian significa que los bytes de orden superior están dispuestos en el extremo de dirección inferior de la memoria y los bytes de orden inferior están dispuestos en el extremo de dirección superior de la memoria.

c) Orden de bytes de red: los protocolos TCP/IP en cada capa definen el orden de bytes como Big-Endian, por lo que el orden de bytes utilizado en el protocolo TCP/IP generalmente se denomina orden de bytes de red.