-6

我想将部分转换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]

4

1 回答 1

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]);

全部尝试,它们仅在使用的字节顺序上有所不同。你应该查一下。

让我感到困惑的一件事是你说你想要两个字节,但是你的z变量被声明为uint8_t只有一个字节。我把它改成了uint16_t.

于 2013-05-02T09:10:48.543 回答