这个函数能够将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); }
时间: 2024-03-21 12:43:25 浏览: 91
u32和字符串的转换函数
这个函数是不正确的。它将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位的数据。
阅读全文