std::vector<char>
의 HEADER_LENGTH
을 정수로 변환 할 수 있습니까?<char> 첫 번째 N 요소를 정수로 변환
여기에서 은 메시지 크기이고 std::vector<char>
은 전체 메시지입니다.
UPDATE :
처음 N의 요소를 결합하고, 명확히하기 위해, 단지 개별적으로 변환하지.
감사합니다.
std::vector<char>
의 HEADER_LENGTH
을 정수로 변환 할 수 있습니까?<char> 첫 번째 N 요소를 정수로 변환
여기에서 은 메시지 크기이고 std::vector<char>
은 전체 메시지입니다.
UPDATE :
처음 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
은 배열 요소와 마찬가지로 처리 할 수 있습니다. int
에 할당하면 char
유형을 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';
}
작동해야합니다.
명시 적으로 처리하십시오. 48 대신 '0'을 사용하십시오. –
아이디어를 얻을 수 없습니까? 첫 번째 HEADER_LENGTH 벡터을 각 십진수 또는 메모리 위치별로 정수에 결합 하시겠습니까? 예를 들어 벡터 a = { '0', '1', '2', '3'}이고 정수로 4 요소를 가져 오려면 결과는 123 (각 문자가 숫자를 나타냄) 또는 858927408 (결합 int로 4 메모리 위치의 값)? –
예. 첫 번째 HEADER_LENGTH 개 요소를 int에 결합하십시오. – Johnnylin