C ++将Array的一部分转换为int

时间:2013-05-02 08:53:08

标签: c++ char 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将是2 buf[0]buf[1]

的值

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