十六进制格式的数字到字符串的向量

埃杜托克斯

我创建了一个向量 std::vector<uint8_t> vec{ 0x0C, 0x14, 0x30 };

我想以字符串“ 0CD430”返回向量的值。

我创建了以下简单代码:

std::string vectorTostring(const std::vector<uint8_t>& vec)
{
    std::string result;
    for (const auto& v : vec)
    {
        result += std::to_string(v);
    }
    return result;
}

在这种情况下,结果将为“ 122048”。哇,十六进制值存储在字节向量中,为什么我使用to_string获得十进制值而不是十六进制值?

Frodyne

我建议使用astd::stringstream和一些输出操纵器,例如:

#include <sstream>
#include <iomanip>
#include <vector>
#include <string>
#include <iostream>

std::string vectorTostring(const std::vector<uint8_t>& vec)
{
    std::stringstream result;
    for (const auto& v : vec)
    {
        result 
            << std::setfill('0') << std::setw(sizeof(v) * 2)
            << std::hex << +v;
    }
    return result.str();
}

int main()
{
    std::cout << vectorTostring({ 0x0c, 0x14, 0x30 }) << std::endl;
}

以相反的顺序进行:

  • +vuint8_t/提升charint,以便输出值而不是ASCII字符。
  • std::hex 使其以十六进制格式输出-但11变为B而不是0B
  • std::setw(sizeof(v) * 2)将输出宽度设置为v-type中字节数的两倍-这里仅为1 * 2。现在11变成“ B”。
  • std::setfill('0') 将填充字符设置为0,最后将11变为0B。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

十六进制字符字符串到实际的十六进制字符

来自分类Dev

使用字符串格式限制十六进制数字的数量

来自分类Dev

十六进制字符串到十六进制字符[]

来自分类Dev

C ++十六进制格式字符串

来自分类Dev

将字符串视为十六进制并保留格式

来自分类Dev

十六进制长数字到看起来一样的字符串

来自分类Dev

如何将十六进制字符串转换为十六进制数字

来自分类Dev

在Python中将转义的十六进制字符串转换为十六进制数字

来自分类Dev

将十六进制字符串值转换为十六进制数字

来自分类Dev

将十六进制数字转换为字符串

来自分类Dev

十六进制字符串到wireshark pcap

来自分类Dev

十六进制字符串到纯文本

来自分类Dev

从十六进制字符串颜色到RGB颜色

来自分类Dev

十六进制到ASCII字符串的转换

来自分类Dev

十六进制字符串到wireshark pcap

来自分类Dev

十六进制文件到字符串数组?

来自分类Dev

C ++十六进制字符串到字节的转换

来自分类Dev

Python字符串到十六进制字节

来自分类Dev

十六进制到字符串的奇怪间距

来自分类Dev

十六进制字符串到整数

来自分类Dev

如何根据数字格式将十进制和十六进制字符串解析为int

来自分类Dev

Python十六进制字符串到带有反斜杠的十六进制字符串

来自分类Dev

Javascript-十六进制字符串到十进制字符串

来自分类Dev

十进制字符串到十六进制字符串

来自分类Dev

Javascript-十六进制字符串到十进制字符串

来自分类Dev

十六进制值的常规字符串到二进制字符串

来自分类Dev

十六进制字符串到二进制字符串

来自分类Dev

在TCL中,添加2个非常长的字符串格式的十六进制数字的最佳方法是什么?

来自分类Dev

翻转十六进制字符串

Related 相关文章

热门标签

归档