gpt4 book ai didi

c++ - 数字的字节表示

转载 作者:行者123 更新时间:2023-11-30 02:08:31 33 4
gpt4 key购买 nike

我使用下一种方式在 C++ 中获取数字的字节表示形式:

template< class T >
union u_value
{
T value;
unsigned char bytes[ sizeof( T ) ];
}

请告诉我这是正确的方法吗?如果不是,我应该如何获取它?

最佳答案

没有“真正”的方式。您所做的是一种方式。一般来说,不鼓励这样的事情,因为它通常会导致不可移植的代码。有时有很好的理由像这样戳内部结构,但由于您没有说明您将如何处理“字节表示”,因此我们无法判断这种方法是否合适。

编辑:所以网络是您在这里的主题。在这种情况下,要么:

  1. 您只传输 POD 类型(char、short、int 等)。在这种情况下,您可能需要查看 <netinet/in.h> ,您可以在其中找到宏 htons() , htonl() , ntohs()ntohl() ,它为您执行主机到网络字节顺序,反之亦然。

  2. 您正在传输复杂类型(例如类)。在这种情况下,您可能需要查看 Boost Serialization ,因为这里要考虑的不仅仅是字节顺序。

无论哪种方式,建议使用现成的、文档齐全且易于理解的代码,而不是自己进行字节杂耍。

关于c++ - 数字的字节表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6703788/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com