2017-05-25 40 views
0

我從串口接收兩個字符,比如'\ x10'和'Q'。將字符轉換爲十進制,而我需要將值附加在一起

我需要將它們轉換爲十進制。

每個字符表示兩個字節的十六進制碼「10」和「51」

不過,我需要追加他們,並有「1051」,然後將其轉換爲十進制給我4177這表明我的電壓值乘以100.

那麼問題是什麼?

我知道printf(「%x」,...)給了我一個十六進制值,但它沒有給我這種修改和追加兩個十六進制代碼的能力。 (它只是顯示十六進制格式)

那麼轉換並將它們附加在一起的實際方法是什麼?

回答

0

這很容易,但棘手。並且我在收到的數據包中感到困惑!它只是一個簡單的十六進制的十進制和十進制到十六進制爲了追加到大塊一起!

int x, y, z, v, n; 

string s = SerialBuffer ; 



char ch; 

ch = SerialBuffer[17]; 



char ch2; 

ch2 = SerialBuffer[16];// s.at(16); 

x = (ch/16);// +(int)sum; 
y = (ch % 16); 
z = (ch2/16); 
v = ch2 % 16; 

n = v + z * 16 + y * 256 + x * 4096;   // decimal 
相關問題