Подскажите начинающему про расчёт контрольной суммы в питоне.
Отчего-то в поиске ничего толкового нет. Задача: посчитать контрольную сумму 12-байтного принятого пакета по UART.
На С++:
uint8_t getCheckSum(const uint8_t* buf)
{
  uint8_t rc{};
  for (uint8_t i{}; i < 11; i++)
  {
    rc -= buf[i];
  }
  return rc == buf[11];
}
 
На питоне такой код не работает, потому что "-420" != 92. Не знаю, как сравнивать.
ba = serial.read(12)
def checksumValid(ba):
    cs = 0
    l = len(ba)-1
    for i in range(l):
        cs -= ba[i]
    return cs == ba[l]
 Подскажите, как это делается канонически.