[英]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.