将Array的一部分转换为int型

C++ Convert part of the Array into int

本文关键字:int 转换 一部分 Array      更新时间:2023-10-16

我想将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