1
2
在过去的十年里,有很多建议(至少用于C++),但不幸的是,没有一个实现。 我不知道比htons()函数集更好的通用解。 |
2
2
最简单的方法就是不要编写依赖于endian的代码。您永远不应该关心正在运行的系统的终结点是什么;唯一重要的是,对于您正在读或写的任何外部数据,强制的终结点是什么。您不应该询问大端值和小端值之间的转换,而应该询问从特定端值到主机端值的转换,您可以用(几乎)完全可移植的、不依赖端值的方式编写代码: 例如:假设您正在从文件流中读取一个32位的big-endian整数:
(我说“(几乎)完全可移植”,因为它确实假定每个字节有8位。但是,如果您所处的系统并非如此,那么在处理外部数据时,您可能会遇到更大的问题。) |
3
1
|
4
1
为了它的价值…和OP一样,我经常需要字节顺序感知的例程来在不同的机器和协议之间传输数据。(在我的例子中,我需要的是嵌入式处理器,而不是大铁。) 经过几次迭代,我发布了一个 endian library 用纯C语言编写到Github。它在文档方面的不足弥补了在全面的单元测试中的不足。 https://github.com/rdpoor/endian
|
Nils · 二进制文件中快速反转float32端的方法 6 年前 |
rubyquartz · 交换无符号短整数的字节 6 年前 |
Lefteris · 将二进制数据读取到long int 6 年前 |
smokums · 小端点编码Go lang 6 年前 |
user3003999 · 字节顺序错误代码是如何工作的? 6 年前 |
memeKing · Python-数据包处理和修改 6 年前 |
Juan González · 火星MIPS模拟器是大端还是小端 7 年前 |