将Array的一部分转换为int型
C++ Convert part of the Array into int
我想将char array[100]
的一部分转换为int
我的意思是我只需要前两个数组array[0]
和array[1]
我想把数组的十六进制读入int
我的意思是如果array[0]=T
对应于0xC2
我希望这个值是int
而不是char
uint8_t z;
z=static_cast<uint8_t>(buf[0]);
但是我也想取buf[1]
的值,而不仅仅是buf[0]
z
将是buf[0]
和buf[1]
的值
很难确定,因为你的问题不是很清楚。但也许这就是你想要的
uint16_t z = *reinterpret_cast<uint16_t*>(array);
另一种可能是
uint16_t z = static_cast<uint8_t>(buf[0])*256 + static_cast<uint8_t>(buf[1]);
,另一个是
uint16_t z = static_cast<uint8_t>(buf[1])*256 + static_cast<uint8_t>(buf[0]);
都试试,它们的不同之处在于它们使用的端序。你应该查一下。
让我困惑的一件事是你说你想要两个字节,但是你的z
变量被声明为uint8_t
,这只有一个字节。我把它改成了uint16_t
相关文章:
- 是否可以从int转换为enum类类型
- 如何在C++中将一个无符号的 int 转换为两个无符号的短裤?
- 是什么导致了这种使用三进制而不是短整型的有符号int到无符号int转换
- 将字符串中的 int 转换为字母;
- 主.cpp:18:20:错误:从"int*"转换为"int"会失去精度 [-fa
- 将非常大的 int 转换为双倍,在某些计算机上会损失精度
- 如何将矢量<int>转换为字符数组?
- C++ 无法从 const int* 转换为 const_iterator
- 我不断收到错误 C2440'=':无法从"int *(__cdecl *)(int *,int *,int,int)"转换为"int *
- 如何将 int[4] 转换为 std::array<int,4>?
- 如何将data[i].int转换为vaible
- 将 int 转换为字符串,然后连接另一个变量以创建完整扩展名,然后将其转换为 const_char*
- 将私有矩阵形式 int 转换为双 C++
- 无法将参数 1 从 'int' 转换为 'int &'
- 将 int 转换为字符串后始终得到 0
- isspace 函数的性能警告,从 int 转换为布尔值
- 将大 int 转换为浮点数,而不舍入 c++
- 错误:无法将'uint8* {aka unsigned int*}'转换为"常量emxArray_uint8_T*"?
- 将未签名的INT转换为BCD
- 在 C++ 中将 int 转换为双精度