繁体   English   中英

如何将字节转换为字符串?

[英]How do I convert byte to string?

有没有快速的方法将给定的字节(比如,数字 - 65 )转换为它的文本十六进制表示?

基本上,我想将字节数组转换为(我是硬编码资源)它们的代码表示形式

BYTE data[] = {0x00, 0x0A, 0x00, 0x01, ... }

如何自动执行此Given byte -> "0x0A" string转换?

在C ++中,您可以使用stringstream和ssprintf。

一些编译器可能有一个itoa方法,它将整数转换为其文本表示。

这些是便携式功能。 您始终可以将整数添加到“0”以获取文本数字,同样使用“A”和“a”。

来自http://www.leunen.com/cbuilder/convert.html ;

template<class T>
std::string ToHex(const T &value)
{
  std::ostringstream oss;
  if(!(oss<<std::hex<<value))
     throw exception("Invalid argument");
  return oss.str();
}

怎么样

#include <iostream>
#include <iomanip>

typedef int BYTE;


int main()
{

    BYTE data[] = {0x00, 0x0A, 0x00, 0x01 };

    for(int loop=0;loop < 4; ++loop)
    {
        std::cout << "Ox" 
                  << std::setw(2) 
                  << std::setfill('0') 
                  << std::hex 
                  << data[loop] 
                  << " ";
    }
}

谢谢,就是说,我使用了以下结构:

std::stringstream stream;
for (size_t i = 0; i < size; ++i) {
   stream << "0x" << std::hex << (short)data[i] << ", ";
}
std::string result = stream.str();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM