我一直被教导说,如果整数大于字符,则必须解决字节顺序问题。通常,我会将它包装在 hton[l|s] 中,然后用 ntoh[l|s] 将其转换回来。但我很困惑为什么这不适用于单字节字符。
我很想知道为什么会这样,希望经验丰富的网络程序员能帮助我阐明为什么字节顺序只适用于多字节整数。
最佳答案
您要找的是endianness .
大端架构存储多字节数据类型的字节,如下所示:
而小端架构将它们反向存储:
当数据从一台机器传输到另一台机器时,单一数据类型的字节必须重新排序以与目标机器的字节顺序相对应。
但是当一种数据类型只包含一个字节时,没有什么可以重新排序。
关于c++ - 网络字节序转换与 "char",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2357720/