十六进制字符串是以下的组合数字 0-9和字符A-F字节数组是用于存储的数组字节仅数据类型。字节数组的每个元素的默认值为 0。在本文中,我们将学习如何将十六进制字符串转换为字节数组。
例子:
Input: Hex String : "2f4a33" Output: Byte Array : 47 74 51 Explanation: Hex String: "2f" Therefore, "2f" is converted to 47. (2*161) + (15*160) ) = 32 + 15 = 47 For "4a": (4 * 161 + 10 * 160) = 74 For "33": (3 * 161 + 3 * 160) = 51 Therefore the output is: 47 74 51
在 C++ 中将十六进制字符串转换为字节数组
我们可以通过解析十六进制字符串并将每对十六进制字符转换为其对应的字节值,将十六进制字符串转换为 C++ 中的字节数组。
方法
- 将十六进制字符串分解为十六进制字符对。
- 找出每个字符对的十进制值。
- 从十六进制字符串十进制值创建字节数组。
将十六进制字符串转换为字节数组的 C++ 程序
下面的程序演示了如何在 C++ 中将十六进制字符串转换为字节数组。
C++
// C++ Program to illustrate how to covert a hex string to a
// byte array
#include <iostream>
#include <string>
#include <vector>
using namespace std;
// Function to convert a hex string to a byte array
vector<uint8_t>
hexStringToByteArray(const string& hexString)
{
vector<uint8_t> byteArray;
// Loop through the hex string, two characters at a time
for (size_t i = 0; i < hexString.length(); i += 2) {
// Extract two characters representing a byte
string byteString = hexString.substr(i, 2);
// Convert the byte string to a uint8_t value
uint8_t byteValue = static_cast<uint8_t>(
stoi(byteString, nullptr, 16));
// Add the byte to the byte array
byteArray.push_back(byteValue);
}
return byteArray;
}
int main()
{
string hexString1 = "2f4a33";
vector<uint8_t> byteArray1
= hexStringToByteArray(hexString1);
// Print the input and output
cout << "Input Hex String: " << hexString1 << endl;
cout << "Output Byte Array: ";
for (uint8_t byte : byteArray1) {
cout << static_cast<int>(byte) << " ";
}
return 0;
}
输出
Input Hex String: 2f4a33 Output Byte Array: 47 74 51
时间复杂度:O(N),这里N是十六进制字符串的长度。
辅助空间:O(N)
相关用法
- C++ Hex String转Signed Integer用法及代码示例
- C++ cos()用法及代码示例
- C++ sin()用法及代码示例
- C++ asin()用法及代码示例
- C++ atan()用法及代码示例
- C++ atan2()用法及代码示例
- C++ acos()用法及代码示例
- C++ tan()用法及代码示例
- C++ sinh()用法及代码示例
- C++ ceil()用法及代码示例
- C++ tanh()用法及代码示例
- C++ fmod()用法及代码示例
- C++ acosh()用法及代码示例
- C++ asinh()用法及代码示例
- C++ floor()用法及代码示例
- C++ atanh()用法及代码示例
- C++ log()用法及代码示例
- C++ trunc()用法及代码示例
- C++ round()用法及代码示例
- C++ lround()用法及代码示例
- C++ llround()用法及代码示例
- C++ rint()用法及代码示例
- C++ lrint()用法及代码示例
- C++ log10()用法及代码示例
- C++ modf()用法及代码示例
注:本文由纯净天空筛选整理自rajpootveerendrasingh36大神的英文原创作品 How to Convert Hex String to Byte Array in C++?。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。