c – 使用“char”进行网络字节顺序转换

我一直被教导如果一个整数大于一个char,你必须解决字节排序问题.通常,我只是将它包装在hton [l | s]中并用ntoh [l | s]将其转换回来.但我很困惑,为什么这不适用于单字节字符.

我很想知道为什么会这样,并且希望经验丰富的网络程序员帮助我解释为什么字节排序仅适用于多字节整数.

参考:https://beej.us/guide/bgnet/html/multi/htonsman.html

解决方法

你要找的是 endianness.

big-endian架构存储多字节数据类型的字节,如下所示:

而小端架构则将它们反向存储:

当数据从一台机器传输到另一台机器时,必须重新排序单个数据类型的字节以与目标机器的字节序对应.

但是当数据类型只包含一个字节时,没有什么可以重新排序.

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...