1
我正在從加速度計讀取字符格式的二進制數據,它由高位字節和低位字節組成。我從事C++工作很長時間,通常只使用更高層次的東西。 我有以下功能:將2個字符轉換爲ascii二進制代碼
short char2short(char* hchar, char* lchar)
{
char temp[2];
temp[0] = *hchar;
temp[1] = *lchar;
我怎樣可以得到的值轉換爲一個整數?據我所知,atoi的作用不同(例如「21」= 21)。 我可以只將char轉換爲int嗎?但是它如何處理更高位和更低位? 在此先感謝您的幫助!
你中途停下來:'uint8_t'是8位參數的正確類型。 char(有符號或無符號)實際上可能不是。結果相同:使用'uint16_t'。請注意,您需要投射操作的結果,因爲它是'int',而不是'short'或'uint16_t'。否則,你可能會得到一個截斷警告(取決於'sizeof(int)')。 – Olaf 2015-06-03 02:47:45
我只是在他的問題中使用了這些類型..但是你對演員表是正確的。 – 2015-07-14 20:58:13
劇組是多餘的;無論如何,'return'表達式被轉換爲返回類型 – 2015-07-15 01:35:10