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

jow*_*ian 2 c++ perl arduino

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

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

$checksum = ((($val1 + $val2 + $val3 + $val4 + $val5)^255 )+1) & 255;
Run Code Online (Sandbox Code Playgroud)

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

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

fre*_*low 6

摆脱美元:

checksum = (((val1 + val2 + val3 + val4 + val5)^255 )+1) & 255;
Run Code Online (Sandbox Code Playgroud)


Pau*_*l R 5

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

checksum = (((val1 + val2 + val3 + val4 + val5) ^ 255) + 1) & 255;
Run Code Online (Sandbox Code Playgroud)

虽然你可以更简单地表达这个:

checksum = -(val1 + val2 + val3 + val4 + val5) & 255;
Run Code Online (Sandbox Code Playgroud)