---
obj: concept
---
# Binary System
The base-2 numeral system is a positional notation with a radix of 2. Each digit is referred to as a bit, or binary digit. Because of its straightforward implementation in digital electronic circuitry using logic gates, the binary system is used by almost all modern computers and computer-based devices, as a preferred system of use, over various other human techniques of communication, because of the simplicity of the language and the noise immunity in physical implementation.

Negative numbers are commonly represented in binary using two's complement.

## Two's complement
Two's complement of an integer number is achieved by:
- Step 1: Start with the absolute value of the number.
- Step 2: inverting (or flipping) all bits – changing every 0 to 1, and every 1 to 0;
- Step 3: adding 1 to the entire inverted number, ignoring any overflow. Accounting for overflow will produce the wrong value for the result.

For example, to calculate the decimal number **−6** in binary:
- Step 1: _+6_ in decimal is _0110_ in binary; the leftmost significant bit (the first 0) is the sign (just _110_ in binary would be -2 in decimal).
- Step 2: flip all bits in _0110_, giving _1001_.
- Step 3: add the place value 1 to the flipped number _1001_, giving _1010_.

To verify that _1010_ indeed has a value of _−6_, add the place values together, but _subtract_ the sign value from the final calculation. Because the most significant value is the sign value, it must be subtracted to produce the correct result: **1010** = **−**(**1**×23) + (**0**×22) + (**1**×21) + (**0**×20) = **1**×−8 + **0** + **1**×2 + **0** = −6.

| Bits:                | 1               | 0          | 1          | 0          |
| -------------------- | --------------- | ---------- | ---------- | ---------- |
| Decimal bit value:   | **−**8          | 4          | 2          | 1          |
| Binary calculation:  | **−**(**1**×23) | (**0**×22) | (**1**×21) | (**0**×20) |
| Decimal calculation: | **−**(**1**×8)  | **0**      | **1**×2    | **0**      |