Drill

ProblemsGo › network

Single-byte checksum of a payload

easynetworkArraysMathGo

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

checksumByte(payload: list<int>) → int

Go 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

func checksumByte(payload []int) int {
	
}

Worked examples

CallResult
checksumByte([]int{1, 2, 3})6
checksumByte([]int{255, 1})0
checksumByte([]int{})0
checksumByte([]int{128, 128})0

Hint

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

Reference solution in Go
func checksumByte(payload []int) int {
	sum := 0
	for _, b := range payload {
		sum += b
	}
	return sum % 256
}

The same problem in another language

More network problems in Go