>"31-bit" is not a typo - PNG defines a "PNG four byte integer", which is limited to the range 0 to 231-1, to defend against the existence of C programmers.
What exactly is implied here? Silly guard against overflow?
What exactly is implied here? Silly guard against overflow?
As another commenter points out, the real reason is about practicality - some languages like Java don't natively support unsigned ints.
Good specs pre-emptively mitigate implementation bugs.