【发布时间】:2017-12-14 15:24:17
【问题描述】:
我正在尝试将 char 数组转换为整数:
const int LENGTH = 3 * sizeof(int);
char data[LENGTH];
/* data is filled */
for (int i = 0; i < LENGTH; i += sizeof(int)) {
std::cout << "Integer: " << (int)data[i] << std::endl;
}
for (int i = 0; i < LENGTH; i += sizeof(short)) {
std::cout << (short)data[i] << " ";
}
输出是:
Integer: 0
Integer: 0
Integer: 0
0 3 0 3 0 3
我希望如果短裤不为零,那么整数也必须如此。可能here 所见的转换仅适用于那个字符/字节,而不是预期的后续 4 个字节。我该如何解决?
明确一点:我希望字节 0 到 3 转换为一个整数,然后将下一个(4 到 7)转换为下一个整数,依此类推...
【问题讨论】:
-
/* data is filled */在哪里?如何?用什么? -
整数通过网络连接从 android 发送,但这不应该有所作为,因为短裤证明数据 [] 中有一些数据。
-
您可以将 char 转换为 int,这很容易,但是,您希望如何将 char 转换为 int?将 char 值加在一起形成一个 int?或者将 int bits = 设置为 3 char 位(会导致与添加字符不同的值)?
-
@peti446 对于他们想要做的事情,这只是一个简单的算术提升,保持相同的值但扩大了类型。然而,似乎他们真正想要的是通过指针重新解释,所以使用指针转换而不是算术转换。
标签: c++ type-conversion