字节向量到十六进制串流DWORD对齐

时间:2015-01-29 20:34:15

标签: c++ vector hex stringstream

我想将存储在std::vector<unsigned char>中的字节转换为字符串流DWORD(4字节)对齐。

示例:

字节向量的内容:0x12 0x00 0x1B 0xAC 0x15 0xDF(6字节)

std::stringstream stream;
//stream << std::hex << std::setfill('0') << std::setw(8) ???

流应如下所示:12001BAC 000015DF

是否有一种简单的方法可以使用std :: copy或如何实现它?

1 个答案:

答案 0 :(得分:0)

你不想要一个循环吗?

for(int i=0; i < bytevector.size(); ++i)
{
    if ((0 != i) && (0 == (i%4)))
        stream << " ";
    stream << std::hex << std::setfill('0') << std::setw(2) << byteVector[i];
}