C 2字节阵列计算(char阵列,字符串和整数)

C++ 2 Byte Array Calculations (char arrays, strings and integers)

本文关键字:阵列 字符串 整数 字节 计算 char      更新时间:2023-10-16

在C 中,我有两个数组:

char width[2]
char height[2]

我的价值(十六进制)是:

width[0]= 01
width[1] = 00
height[0] = 00   
height[1]= A8

尺寸为256x168。我很难将两个char值组合到一个字符串中,然后将该字符串转换为"组合"整数以进行以后的操作。

我尝试了以下没有成功:

string sImageWidth = string() + width[0] + width[1];
string sImageHeight = string() + height[0] + height[1];

和...

std::stringstream ssImageWidth;
ssImageWidth << width[0] << width[1];
std::string sImageWidth = ssImageWidth.str();

我在做什么错?还有另一种方法吗?我是C 的新手,将我的头围绕来自C#背景的C 。谢谢!

您的作业应为格式:

<char_pos> = 0x<value>;

如果您在谈论十六进制值。我假设这只是问题的错别字,否则您将遇到其他问题。

您是否在乎字符串值?如果您这样做,您可以完全跳过转换为字符串...

int H{(height[0] << 8) | height[1]};

对于转换为字符串Google" String Stream",它将允许您执行类似的内容,然后完成后将其转换为字符串。

如果您希望字符串作为两个字符,这将有效:

string sImageWidth = string() + width[0] + width[1];
string sImageHeight = string() + height[0] + height[1];

由于字符串的 运算符可以处理char。如果您希望字符串是字符的实际数字值,则需要一些解析,例如

std::string width = std::to_string(static_cast<int>(width[0])) + std::to_string(static_cast<int>(width[1]))