2013-05-02 74 views
-6

我想的char array[100]部分转换为intC++转换的阵列的一部分转换成int

我的意思是我想仅第一2个阵列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

什么编程语言? – pyrocumulus 2013-05-02 08:54:05

+0

对不起C++我写了它 – Nasr 2013-05-02 08:54:31

回答

0

硬盘的价值,以确保因您的问题ISN不太清楚。但是,也许这是你想要

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

+0

是的,1个字节只有1个BUF,谢谢这是我正在寻找伟大的:) – Nasr 2013-05-02 09:15:58