【发布时间】:2018-08-01 17:04:11
【问题描述】:
如何将包含字母的无符号字符数组转换为整数。我已经尝试过了,但它最多只能转换四个字节。我还需要一种将整数转换回无符号字符数组的方法。
int buffToInteger(char * buffer)
{
int a = static_cast<int>(static_cast<unsigned char>(buffer[0]) << 24 |
static_cast<unsigned char>(buffer[1]) << 16 |
static_cast<unsigned char>(buffer[2]) << 8 |
static_cast<unsigned char>(buffer[3]));
return a;
}
【问题讨论】:
-
要将字符数组输入双关,使用use memcpy or maybe bit_cast
-
您想通过这种方式解决的真正问题是什么?使用Minimal, Complete, and Verifiable Example 和一些示例输入,输出会是什么?您当前的尝试给出了什么输出?请read about how to ask good questions,还有this question checklist。
-
不清楚你需要什么“转换”
-
因为整数是 32 位的,所以不可能在不丢失信息的情况下将超过 4 个字符(8 位)缩小到它的大小。
-
@Czipperz "因为整数是 32 位" 不,不是,它可以是 32 位,但可以不同
标签: c++ type-conversion