Perl - 2的补码模256 - C ++等价

时间:2011-12-05 09:47:48

标签: c++ perl arduino

我正在使用Perl脚本将值从USB发送到Arduino。该脚本的一部分是对协议中值的校验和错误检查。

我现在想将数据从一个Arduino发送到另一个,所以我需要用C ++编写等效的行。

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

它是1到5模256的总和的2的补码。

我怎么能用C ++为Arduino写这个?

2 个答案:

答案 0 :(得分:6)

摆脱美元:

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

答案 1 :(得分:5)

在C ++中几乎是一样的:

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

虽然您可以更简单地表达为:

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