[Dons language lawyer hat]<p>> floating-point number types will not be discussed at all, because that mostly deals with how to analyze and handle approximation errors that stem from rounding. By contrast, integer math is a foundation of programming and computer science, and all calculations are always exact in theory (ignoring implementations issues like overflow).<p>Integer overflow is no mere implementation issue, any more than errors are an implementation issue with floating-point.<p>> Unqualified char may be signed or unsigned, which is implementation-defined.<p>> Unqualified short, int, long, and long long are signed. Adding the unsigned keyword makes them unsigned.<p>There's an additional point here that's not mentioned: <i>char</i>, <i>signed char</i>, and <i>unsigned char</i> are distinct types, but that's only true of <i>char</i>. That is, <i>signed int</i> describes the same type as <i>int</i>. You can see this using the <i>std::is_same</i> type-trait with a conforming compiler. Whether <i>char</i> behaves like a signed integer type or an unsigned integer type, depends on the platform.<p>> Signed numbers may be encoded in binary as two’s complement, ones’ complement, or sign-magnitude; this is implementation-defined.<p>This is no longer true of C++. As of C++20, signed integer types are defined to use two's complement. [0] I don't think C intends to do the same.<p>> Character literals (in single quotes) have the type (signed) int in C, but (signed or unsigned) char in C++.<p>That's not correct. In C++, the type of a character literal is simply <i>char</i>, never <i>signed char</i> nor <i>unsigned char</i>. As I mentioned above, whether <i>char</i> is signed depends on the platform, but it's always a distinct type.<p>> Signed division can overflow – e.g. INT_MIN / -1.<p>This isn't just overflow, it's undefined behaviour.<p>> Counting down<p>> Whereas an unsigned counter would require code like:<p>> for (unsigned int i = len; i > 0; i--) { process(array[i - 1]); }<p>That's one solution, but it might be a good place for a <i>do/while</i> loop.<p>[0] <a href="https://stackoverflow.com/q/57363324/" rel="nofollow">https://stackoverflow.com/q/57363324/</a>