将 char[] 数组转换为字节,然后将字节转换为 int,反之亦然
Convert array of char[] to bytes and then convert bytes to int and vise versa
如何将 4 个字符"HERE"转换为值为 1163019592 的 4 字节整数?
这是我尝试过的:
int main()
{
string s = "HERE";
int n = s.length();
int* number = new int[n + 1];
char* cstr = new char[n+1];
for (int i = 0; i < n; i++) {
cstr[i] = s[i];
number[i] = cstr[i];
cout << number[i];
}
}
但我没有得到1163019592,而是72698269。
十进制1163019592
是二进制01000101 01010010 01000101 01001000
,即十六进制0x45 0x52 0x45 0x48
。
"HERE"
是字节0x48 0x45 0x52 0x45
。
相同的字节,不同的顺序。
如果您希望"HERE"
等同于1163019592
而不考虑字节序,请尝试以下操作:
int main()
{
string s = "HERE";
size_t n = s.length();
uint32_t number = 0;
for (int i = 0; i < n; i++) {
number = (number << 8) | static_cast<uint8_t>(s[n-i-1]);
}
cout << number;
}
现场演示
相关文章:
- 如何在连接器 C++ 中将原始字节转换为字符串
- 将 char[] 数组转换为字节,然后将字节转换为 int,反之亦然
- 如何在 c++ 中将字节转换为 ASCII 十六进制表示形式?
- OPENSSL 将二进制字节转换为 SHA256 C++
- 如何将音频字节转换为样本
- C++ 如何将 char[] 中的多个字节转换为一个整数
- 删除字节转换的char*
- 如何将二进制字节转换为可打印的数值
- 将 MFRC522 UID 十六进制字节转换为可打印的小数
- 用c++将十六进制字符串切碎,并将中的每个字节转换为十进制
- Qt是否有一种将字节转换为int的方法,反之亦然
- UCS-4 到 Solaris 上的多字节转换
- 使用 C++ 将四个字节转换为整数
- 将字节转换为无符号整数的最快方法
- 如何在mac上将多字节转换为宽字符
- 将字节转换为整数
- 在Arduino错误时将4个字节转换为长字节
- 更正从C++到delphi AnsiString的字节转换
- 用C++将4个字节转换为3个字节
- 正在将字节转换为char数组,然后再转换回来