Pure Programmer
Blue Matrix

Cluster Map

Project: Simple 32-Bit Checksum

Write a program that computes a simple checksum. Checksums are a way to convert a large amount of data down to one number. If we compute the checksum before we transmit a file over the network then compute the checksum of the received file we will hopefully notice a change in the checksum value if the data was corrupted during transmission.

The program should take input on the standard input and compute a 32-bit checksum of the data. The checksum is computed taking the input bytes four at a time to form a 32-bit value (network byte order or big endian). This value is XORed with the current value of the checksum. The checksum should start with 0. Once the input is exhausted the program should print out the checksum as eight hexidecimal digits.

$ g++ -std=c++17 SimpleChecksum2.cpp -o SimpleChecksum2 -lfmt $ ./SimpleChecksum2 < ../../data/text/GettysburgAddress.txt 74344432 $ g++ -std=c++17 SimpleChecksum2.cpp -o SimpleChecksum2 -lfmt $ ./SimpleChecksum2 < ../../data/text/USConstitution.txt 15041C28 $ g++ -std=c++17 SimpleChecksum2.cpp -o SimpleChecksum2 -lfmt $ ./SimpleChecksum2 < ../../data/text/UnicodeTest.utf8 EE18A14B