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