Drill

ProblemsC# › network

Single-byte checksum of a payload

easynetworkArraysMathC#

Many lightweight protocols use a one-byte checksum: just the sum of all bytes modulo 256.

ChecksumByte(payload: list<int>) → int

C# needs a compiler and Drill does not host one yet, so this page is the reference rather than an exercise: the problem, worked examples, and the solution in full. To type it out, the same problem runs in Python.

Solve it in Python →

Where you start

public int ChecksumByte(List<int> payload) {
    
}

Worked examples

CallResult
ChecksumByte(new List<int> { 1, 2, 3 })6
ChecksumByte(new List<int> { 255, 1 })0
ChecksumByte(new List<int> { })0
ChecksumByte(new List<int> { 128, 128 })0

Hint

Add every element, then take the remainder when divided by 256.

Reference solution in C#
public int ChecksumByte(List<int> payload) {
    int sum = 0;
    foreach (int b in payload) sum += b;
    return sum % 256;
}

The same problem in another language

More network problems in C#