将const char *类型转换为int数组

伊兰科

所以我正在使用C ++ MongoDB驱动程序进行测试

这是我的测试代码

http://pastebin.com/eQUekQU2

在代码中,我制作了一个小的整数数组,并将其作为二进制插入到mongo数据库中。

当我遍历行时​​,我用这一行代码检索二进制文件

mongo::BSONElement array = obj["binTest"];

此时,我在此数组变量中具有BSONElement类型的二进制文件。我想将此二进制文件转换回整数数组。可以在api中看到执行此操作的功能

http://api.mongodb.org/cplusplus/current/classmongo_1_1_1_b_s_o_n_element.html#a8f4902eacf15f5069f4bb752bfd0aef4

功能标题

const char* mongo::BSONElement::binData (int &len)const

我想运行该函数,以const char *格式获取二进制数据,然后将其转换为int数组。我可以抛弃它,还是我必须每隔4个字节自己将其放入一个数组中?

谢谢

用户名

只要您在具有相同字节序的硬件体系结构上运行代码(在PC上是小字节序),就可以将检索到的char指针强制转换为int32指针,并将其视为int32数组。

但是,如果您想进行数据交换或跨平台的互操作性,那么出于存储/交换目的,将数据类型的数组视为字节数组将是一个坏主意。

您需要考虑不同的硬件平台可能具有不同的耐久性。在这种情况下,将char指针强制转换为int32 *是行不通的,您将需要获取各个字节并组成int32值。但这可能会变得更加棘手,因为将int32的字节序写入BSON-BinData的字节序与运行“写入代码”的计算机体系结构的字节序完全相同-您需要知道再次对binData进行解码。

您还需要考虑到,对于其他数据类型的数组,即使使用相同的硬件体系结构,转换也可能无法进行。例如,在Intel x86 / x64平台的流行操作系统之间数据类型的大小是不同的:http : //software.intel.com/zh-cn/articles/size-of-long-integer-type-不同的架构和操作系统

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将const char **转换为void *?

来自分类Dev

将Const char *转换为Unsigned long int-strtoul

来自分类Dev

将const char *转换为QString

来自分类Dev

无法将“ TCHAR *”转换为“ const char *”

来自分类Dev

将String ^转换为const char *

来自分类Dev

将const char *转换为std :: string

来自分类Dev

C将const char *转换为char

来自分类Dev

将char数组转换为int以停止程序

来自分类Dev

将C ++ const char *转换为char *

来自分类Dev

将int转换为char?

来自分类Dev

C将char数组转换为行为怪异的int

来自分类Dev

无法将'int'转换为'const char *'

来自分类Dev

将Constexpr强制转换为const char []

来自分类Dev

将int类型转换为char *

来自分类Dev

将const char **转换为std :: vector <const char *>

来自分类Dev

将const Char *转换为Char数组

来自分类Dev

将(const)char *转换为LPCWSTR

来自分类Dev

Java:将char数组转换为int

来自分类Dev

将const char *转换为QString

来自分类Dev

无法将“ TCHAR *”转换为“ const char *”

来自分类Dev

将char []转换为Int []

来自分类Dev

将char数组转换为带空格的int数组

来自分类Dev

使用atoi将char数组转换为int数组

来自分类Dev

将表格CString转换为const char *

来自分类Dev

将int转换为char?

来自分类Dev

将int **数组转换为不同大小/组成的char **数组

来自分类Dev

将char类型(非ascii)转换为int

来自分类Dev

无法将 QString 转换为 Const Char*

来自分类Dev

如何将 const char* 转换为 const unsigned char*