16진수 문자열을 바이트 배열로 변환
가변 길이의 16진수 문자열을 바이트 배열로 변환하는 것은 프로그래밍에서 일반적인 작업이므로 표현이 가능합니다. 사람이 읽을 수 있는 형식의 이진 데이터입니다. 이를 효율적으로 수행하는 방법은 다음과 같습니다.
"01A1"과 같은 16진수 문자열을 바이트 배열로 변환하려면 내장된 strtol() 함수를 활용하여 변환을 수행할 수 있습니다. 다음 구현에서는 바이트 배열을 저장할 문자의 std::벡터를 만듭니다.
std::vector<char> HexToBytes(const std::string& hex) { std::vector<char> bytes; // Loop through the hex string in pairs of characters for (unsigned int i = 0; i < hex.length(); i += 2) { // Extract the current pair of characters std::string byteString = hex.substr(i, 2); // Convert the pair to a char using strtol() char byte = (char)strtol(byteString.c_str(), NULL, 16); // Append the char to the byte array bytes.push_back(byte); } // Return the byte array return bytes; }
이 접근 방식은 모든 짝수 길이의 16진수 문자열에 작동합니다. strtol() 함수는 문자 배열 byteString.c_str() 및 밑수(16진수의 경우 16)에 대한 포인터를 사용합니다.
이 HexToBytes() 함수를 사용하면 16진수 문자열을 바이트로 쉽게 변환할 수 있습니다. 배열을 사용하면 편리하고 유연한 방식으로 바이너리 데이터로 작업할 수 있습니다.
위 내용은 C에서 16진수 문자열을 바이트 배열로 효율적으로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!