[英]convert vector<char> first N elements to an integer
如何将std::vector<char>
第一个HEADER_LENGTH
转换为整数?
HEADER_LENGTH
是消息的大小, std::vector<char>
是整个消息。
更新 :
为了明确起见,它正在组合前N个元素,而不仅仅是将它们分别转换。
谢谢。
我不知道您的确切想法,所以我都做我的猜测。
#include <iostream>
#include <cstring>
#include <vector>
using namespace std;
int main() {
vector<char> a = {'0','1','2','3','4'};
//My sample is for HEADER_LENGTH of 4
// by memory content
int x;
memcpy(&x, a.data(), 4);
cout << x << endl; //858927408
// by digit
x = 0;
for (auto it = 0; it < 4; it++) {
x = x * 10 + (a[it] - '0');
}
cout << x << endl; //123
return 0;
}
只需使用一个for循环对向量的HEADER_LENGTH个字符进行迭代,然后对其进行转换。
for(int i = 0; i < HEADER_LENGTH; i++)
{
vector[i]; // convert char to int here
}
您可以像处理数组元素一样处理每个char
。 您可以将char
类型转换为int
只需将其分配给int
。 一个char
只是一个1字节的整数。 在ASCII码中,数字从48开始。
vector <char> arr;
for(int i = 0; i < HEADER_LENGTH; i++) {
int x = arr[i] - 48;
//or
int x = arr[i] - '0';
}
应该管用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.