构造一个vector容器,里面元素是uint8_t,使用push_back插入5个uint8_t类型元素,打印出来
时间: 2023-12-01 10:55:50 浏览: 102
好的,以下是代码实现:
```c++
#include <iostream>
#include <vector>
int main() {
std::vector<uint8_t> vec;
vec.push_back(1);
vec.push_back(2);
vec.push_back(3);
vec.push_back(4);
vec.push_back(5);
for (auto i : vec) {
std::cout << static_cast<int>(i) << " ";
}
std::cout << std::endl;
return 0;
}
```
输出结果为:1 2 3 4 5
相关问题
这个函数能够将uint32_t 类型的数据转为vector<uint8_t>,是否正确,void Convert_32Bits_To_8Bits(vector<uint8_t>& Des,uint32_t nNum) { Des.push_back(nNum >> 0); Des.push_back(nNum >> 18); Des.push_back(nNum >> 28); Des.push_back(nNum >> 3*8); }
这个函数是不正确的。它将32位的数据分为4个部分,每个部分只取了部分位数,然后将它们分别存储在了vector中。但是这样存储的顺序是错误的,应该是按照从低位到高位的顺序存储。同时,这个函数只能处理32位的数据,而不能处理其他位数的数据。正确的实现应该是:
```
void Convert_32Bits_To_8Bits(vector<uint8_t>& Des,uint32_t nNum) {
Des.push_back(nNum & 0xFF);
Des.push_back((nNum >> 8) & 0xFF);
Des.push_back((nNum >> 16) & 0xFF);
Des.push_back((nNum >> 24) & 0xFF);
}
```
这个函数将32位的数据按照从低位到高位的顺序,分为4个部分,每个部分都取了8位,并且将它们存储在vector中。这个函数可以处理任何32位的数据。
void Convert_32Bits_To_8Bits(vector<uint8_t>& Des,uint32_t nNum) { Des.push_back(nNum >> 0); Des.push_back(nNum >> 1*8); Des.push_back(nNum >> 2*8); Des.push_back(nNum >> 3*8); } 怎么用?
这是一个将32位整数转换为4个8位整数的函数,可以按照以下步骤使用它:
1. 创建一个空的vector<uint8_t>,存储转换后的8位整数。
2. 调用函数Convert_32Bits_To_8Bits,并将第一个参数设置为上一步创建的vector,将第二个参数设置为要转换的32位整数。
3. 最终,vector中将包含4个8位整数,分别对应32位整数的4个字节。
示例代码如下:
```
vector<uint8_t> result;
uint32_t num = 0xABCD1234;
Convert_32Bits_To_8Bits(result, num);
// 打印转换后的8位整数
for (int i = 0; i < result.size(); i++) {
cout << hex << setw(2) << setfill('0') << (int)result[i] << " ";
}
// 输出:34 12 CD AB
```
阅读全文