D.6 Negative Binary Numbers: Two’s Complement Notation
The discussion so far in this appendix has focused on positive numbers. In this section, we explain how computers represent negative numbers using two’s complement notation. First we explain how the two’s complement of a binary number is formed, then we show why it represents the negative value of the given binary number.
Consider a machine with 32-bit integers. Suppose
int value = 13;
The 32-bit representation of value
is
00000000 00000000 00000000 00001101
To form the negative of value
we first form its one’s complement by applying C++’s bitwise complement operator (~
):
onesComplementOfValue = ~value;
Internally, ~value
is now value
with each of its bits reversed—ones become zeros ...
Get C++ How to Program, 10/e now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.