2011-12-05 55 views
2

我正在使用Perl腳本將數值從USB發送到Arduino。該腳本的一部分是協議中值的校驗和錯誤檢查。Perl - 2的補碼模256 - C++等效

我現在想將數據從一個Arduino發送到另一個,所以我需要用C++編寫相應的行。

$checksum = ((($val1 + $val2 + $val3 + $val4 + $val5)^255)+1) & 255; 

這是2的值的總和的補充1至5模256

我怎麼能寫在C++的Arduino的?

回答

6

只是擺脫美元:

checksum = (((val1 + val2 + val3 + val4 + val5)^255)+1) & 255; 
+1

+1,美元是萬惡之源! –

5

這將是幾乎在C相同++:

checksum = (((val1 + val2 + val3 + val4 + val5)^255) + 1) & 255; 

雖然你可以表達這種更簡單地稱爲:

checksum = -(val1 + val2 + val3 + val4 + val5) & 255;