C 两台little endian机器需要转换
在一次采访中,我被问到一个问题:“需要在两台little-endian机器之间传输的数据是否需要转换(little-to-big-endian,反之亦然)” 据我所知,小端存储在最低地址的最低字节,大端存储在最低地址的较高字节。我不确定两台机器之间的数据传输是如何发生的 有人知道这件事吗C 两台little endian机器需要转换,c,endianness,C,Endianness,在一次采访中,我被问到一个问题:“需要在两台little-endian机器之间传输的数据是否需要转换(little-to-big-endian,反之亦然)” 据我所知,小端存储在最低地址的最低字节,大端存储在最低地址的较高字节。我不确定两台机器之间的数据传输是如何发生的 有人知道这件事吗 感谢像htons、htonl、ntohs和ntohl这样的函数可以将小端数转换为网络顺序(大端数),反之亦然。网络协议要求首先将数据转换为大端,然后再转换回小端(如果这是主机字节顺序)。惯例是以大端格式在网络上
感谢像
htons
、htonl
、ntohs
和ntohl
这样的函数可以将小端数转换为网络顺序(大端数),反之亦然。网络协议要求首先将数据转换为大端,然后再转换回小端(如果这是主机字节顺序)。惯例是以大端格式在网络上传输数字。
一般来说,您不应该对目标机器平台进行任何假设。
这样两台机器就可以互相理解,即使它们使用不同的格式在内部存储数字。我想如果面试官问我这样的问题,我会让面试官澄清这个问题。