Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 两台little endian机器需要转换_C_Endianness - Fatal编程技术网

C 两台little endian机器需要转换

C 两台little endian机器需要转换,c,endianness,C,Endianness,在一次采访中,我被问到一个问题:“需要在两台little-endian机器之间传输的数据是否需要转换(little-to-big-endian,反之亦然)” 据我所知,小端存储在最低地址的最低字节,大端存储在最低地址的较高字节。我不确定两台机器之间的数据传输是如何发生的 有人知道这件事吗 感谢像htons、htonl、ntohs和ntohl这样的函数可以将小端数转换为网络顺序(大端数),反之亦然。网络协议要求首先将数据转换为大端,然后再转换回小端(如果这是主机字节顺序)。惯例是以大端格式在网络上

在一次采访中,我被问到一个问题:“需要在两台little-endian机器之间传输的数据是否需要转换(little-to-big-endian,反之亦然)”

据我所知,小端存储在最低地址的最低字节,大端存储在最低地址的较高字节。我不确定两台机器之间的数据传输是如何发生的

有人知道这件事吗


感谢像
htons
htonl
ntohs
ntohl
这样的函数可以将小端数转换为网络顺序(大端数),反之亦然。网络协议要求首先将数据转换为大端,然后再转换回小端(如果这是主机字节顺序)。

惯例是以大端格式在网络上传输数字。 一般来说,您不应该对目标机器平台进行任何假设。
这样两台机器就可以互相理解,即使它们使用不同的格式在内部存储数字。

我想如果面试官问我这样的问题,我会让面试官澄清这个问题。