繁体   English   中英

C库函数将二进制字节数组转换为具有各种转换的整数

[英]C library function to convert binary byte array to integer with various conversions

是否有一组C库函数(或在某处收集的非库函数),它允许将字节数组数据转换为具有各种转换的整数(大端数据,小端数据,一个补码签名,二进制补码,等等) cetera),考虑到机器自己的字节顺序?

谢谢!

这很接近,虽然我不认为它会处理一个补码而不是两个补码。 您可以添加它。 http://code.google.com/p/protobuf-c/

据我了解,您正试图获得一个明确的BIG_ENDIAN(或LITTLE_ENDIAN)号码,而不必知道您当前主持人的约定。 这应该是可能的。

据我所知,按照惯例,“网络字节顺序”始终是BIG_ENDIAN。 所以你可以调用htonx(),然后你知道它是BIG_ENDIAN。 然后,如果你想要LITTLE_ENDIAN,你可以在你自己的代码中手动转置字节。 结果应该是您自己的toBigEndian()或toLittleEndian()函数。

问题的2的补充部分不承认同样的事情,因为它完全是一个惯例问题。 假设数字长度为两个字节 - 几乎每个16位值的组合都是有效的1的补码数,也是有效的2的补码数。 “正确”值完全取决于编写该值的代码对其进行的解释。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM