c++将字节数组转化为整数:小端和大端
时间: 2024-03-02 10:53:39 浏览: 169
在C++中,将字节数组转化为整数可以使用以下方法:
1. 小端模式(Little Endian):将字节数组按照从低地址到高地址的顺序排列,最低位字节在最前面,最高位字节在最后面。可以使用以下代码将字节数组转化为整数:
```c++
#include <iostream>
#include <cstring>
int littleEndianByteArrayToInt(char* bytes, int size) {
int result = 0;
for(int i = size - 1; i >= 0; i--) {
result = (result << 8) + (unsigned char)bytes[i];
}
return result;
}
int main() {
char bytes[] = {0x01, 0x23, 0x45, 0x67};
int value = littleEndianByteArrayToInt(bytes, sizeof(bytes));
std::cout << value << std::endl; // Output: 1732584193
return 0;
}
```
2. 大端模式(Big Endian):将字节数组按照从高地址到低地址的顺序排列,最高位字节在最前面,最低位字节在最后面。可以使用以下代码将字节数组转化为整数:
```c++
#include <iostream>
#include <cstring>
int bigEndianByteArrayToInt(char* bytes, int size) {
int result = 0;
for(int i = 0; i < size; i++) {
result = (result << 8) + (unsigned char)bytes[i];
}
return result;
}
int main() {
char bytes[] = {0x01, 0x23, 0x45, 0x67};
int value = bigEndianByteArrayToInt(bytes, sizeof(bytes));
std::cout << value << std::endl; // Output: 19088743
return 0;
}
```
阅读全文