我想将部分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
将是2 buf[0]
和buf[1]
答案 0 :(得分:0)
很难确定,因为你的问题不是很清楚。但也许这就是你想要的
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]);
全部尝试,它们的区别仅在于它们使用的 endianness 。你应该看一下。
令我困惑的一件事是你说你想要两个字节,但你的z
变量被声明为uint8_t
,这只是一个字节。我将其更改为uint16_t
。