2013-05-02 72 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