【问题标题】:Convert and Store struct to binary in C++在 C++ 中将结构转换并存储为二进制
【发布时间】:2020-01-06 12:58:37
【问题描述】:

我想将包含各种数据类型(long、char[x]、char*)的结构转换为二进制并将其存储在变量中(我不知道正确或最佳的数据类型)。

转换
对于字符串:我已将每个字符转换为其 ascii 代码,然后将 ascii 代码从十进制转换为二进制。 对于数字:我已将数字从十进制转换为二进制。

存储
我将上述转换的输出存储到 char[] 中,由 '0' 和 '1' 组成。

我的问题是,如何将结构转换为二进制以及存储它的数据类型。理想情况下,我想以二进制格式存储它,以便对其执行各种操作。 (我使用的 char[] 数据类型好像有点不对,因为它实际上是字符串,而不是二进制)

编辑:我宁愿避免使用标准 C++ 中未包含的库。

【问题讨论】:

  • 你在混合概念。结构类型(用户定义类型),而变量类型。一个变量肯定可以有一个结构类型。此外,每个字符已经 具有 一个二进制值。这就是计算机的工作原理。
  • @Botje 我不想使用其他库,但我可能会尝试一下,谢谢
  • @MSalters 我知道结构和变量的概念。我的问题实际上不是类型。结构(由变量组成)和变量都在内存中占据“位置”。所以我想以某种方式处理那个“内存位置”(它们的二进制值)。

标签: c++ struct binary


【解决方案1】:

我将上述转换的输出存储到 char[] 中,由 '0' 和 '1' 组成。

只需将二进制数据存储为字节(例如不是['1','1','1','1','0','1','1','1'],而是0xf7)。每个 char 存储 8 位,以存储尽可能多的 chars 数据。如果您使用的是 c++17,请使用 std::byte 而不是 char

【讨论】:

    【解决方案2】:

    最好使用 bool 向量作为存储,例如,按照您的说明转换每种数据类型,然后将它们的输出放入向量中,然后按照它们放入容器中的顺序检索它们。虽然,最好使用 std::byte 的向量。

    【讨论】:

    猜你喜欢
    • 2015-12-14
    • 1970-01-01
    • 1970-01-01
    • 2018-07-12
    • 2017-01-14
    • 1970-01-01
    • 2016-07-06
    • 2019-03-18
    • 1970-01-01
    相关资源
    最近更新 更多