我想将部分转换char array[100]
为int
我的意思是我只想要前 2 个数组array[0]
和array[1]
我想将数组的十六进制读入int
我的意思是如果array[0]=T
哪个对应于0xC2
我希望该值是 asint
而不是char
uint8_t z;
z=static_cast<uint8_t>(buf[0]);
但我想看的buf[1]
不仅是buf[0]
z
将是 2 的值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
.