13.1 Bits and Bytes: Why Binary, Storage Calculations, and Signed Integers
Key Takeaways
- Computers use binary because two-state electronic components (on or off, high or low voltage) are simple, reliable, and resistant to noise, and Boolean logic maps directly onto them.
- n bits can represent 2ⁿ different values, so storing k different values requires ⌈log₂ k⌉ bits; for example, 26 letters need 5 bits, because 2⁵ = 32.
- A byte is 8 bits; storage units step up by about 1,000 (or exactly 1,024): kilobyte, megabyte, gigabyte, terabyte, petabyte.
- Network speeds are usually quoted in bits per second, so a 100 Mbps connection transfers at most about 12.5 megabytes per second.
- In 8-bit two's complement, values run from −128 to +127, and 11110100 represents −12.
What this competency asks
ETS asks you to understand bits as the universal medium for expressing digital information. That includes:
- Perform calculations using bits and bytes.
- Determine the number of bits and bytes required to store a given amount of data.
- Explain why binary numbers are fundamental to the operation of computer systems.
It also includes encoding schemes and compression (Sections 13.2 and 13.3). Under data storage, ETS adds: identify measures of file size (byte, kilo, mega, giga, tera, peta). ETS's sample question on storage multiplies out assumptions about a university library's books, pages, lines, words, and characters to get about 3 × 10¹² bytes, which is best measured in terabytes.
Why binary?
- Reliability: a circuit only has to distinguish two states, such as high and low voltage, charged and uncharged, or magnetized one way or the other. That is far more tolerant of electrical noise than distinguishing ten levels.
- Simple hardware: transistors act as switches, and logic gates built from them compute Boolean functions (Section 7.4).
- Universality: any information can be encoded as bits: numbers (Section 4.3), text, colors, sound, and the program instructions themselves.
The meaning of a bit pattern depends on how it is interpreted. 01000001 is the number 65, the character 'A' in ASCII, or part of a color. Bits are abstractions all the way up (Section 4.1).
How many values? How many bits?
| Bits | Distinct values (2ⁿ) | Example use |
|---|---|---|
| 1 | 2 | true / false |
| 4 | 16 | One hex digit |
| 5 | 32 | 26 letters |
| 7 | 128 | ASCII characters |
| 8 | 256 | One byte; one color channel |
| 16 | 65,536 | CD-quality audio sample |
| 24 | 16,777,216 | RGB color (8 bits × 3) |
| 32 | about 4.3 billion | IPv4 addresses |
To store k different values, you need ⌈log₂ k⌉ bits: the smallest n with 2ⁿ ≥ k.
- 50 U.S. states: 2⁵ = 32 is too few and 2⁶ = 64 is enough, so 6 bits.
- 1,000 student IDs: 2¹⁰ = 1,024 ≥ 1,000, so 10 bits.
- Adding one bit doubles the number of values. Going from 8 to 9 bits takes you from 256 to 512.
Units of storage
| Unit | Symbol | Decimal (SI) | Binary (power of 2) |
|---|---|---|---|
| Byte | B | 8 bits | 8 bits |
| Kilobyte | KB | 10³ = 1,000 bytes | 2¹⁰ = 1,024 bytes (KiB) |
| Megabyte | MB | 10⁶ bytes | 2²⁰ bytes (MiB) |
| Gigabyte | GB | 10⁹ bytes | 2³⁰ bytes (GiB) |
| Terabyte | TB | 10¹² bytes | 2⁴⁰ bytes (TiB) |
| Petabyte | PB | 10¹⁵ bytes | 2⁵⁰ bytes (PiB) |
Each step is about 1,000 times the last. ETS's sample question lists each unit with both forms, for example "gigabyte (2³⁰, or approximately 10⁹, bytes)". For estimating, treat each step as a factor of 1,000.
Bits vs. bytes: a lowercase b means bits and an uppercase B means bytes. Network speeds use bits (Mbps), and file sizes use bytes (MB). A 100 Mbps connection moves at most 100 ÷ 8 = 12.5 MB per second, so a 1 GB file (8,000 megabits) takes at least 8,000 ÷ 100 = 80 seconds.
Estimating storage: multiply the assumptions
Set up a chain of multiplications with units, then choose the unit whose size is closest.
Example: A district archives 2,000 hours of classroom video at about 1.5 GB per hour.
2,000 × 1.5 GB = 3,000 GB = 3 TB.
Example: A school stores 1,200 student portfolios, each with 50 photos of about 3 MB.
1,200 × 50 × 3 MB = 180,000 MB = 180 GB, so gigabytes are the best unit.
Plain text: at 1 byte per character, a 300-page book with about 2,000 characters per page is 600,000 bytes, roughly 0.6 MB.
Keep powers of ten separate to avoid slips. For example, 3 × 10⁶ books × 4 × 10² pages × 5 × 10¹ lines = 60 × 10⁹ lines.
Unsigned and signed integers
With n bits:
- Unsigned integers range from 0 to 2ⁿ − 1. With 8 bits, that is 0 to 255.
- Signed integers in two's complement range from −2ⁿ⁻¹ to 2ⁿ⁻¹ − 1. With 8 bits, that is −128 to +127.
Two's complement gives the leftmost bit a negative weight, −2ⁿ⁻¹. In 8 bits, 11110100 = −128 + 64 + 32 + 16 + 4 = −12.
To negate a number: invert every bit, then add 1. For +43 = 00101011: inverting gives 11010100, and adding 1 gives 11010101, which is −43.
Why two's complement? There is only one zero, and the same adder circuit handles addition and subtraction, since a − b = a + (−b).
Overflow
A result outside the representable range overflows. In 8-bit two's complement, 100 + 50 = 150 exceeds 127:
01100100 (+100)
+ 00110010 (+50)
= 10010110 (read as −106)
Adding two positive numbers and getting a negative result, or two negatives and getting a positive, signals overflow. Adding a positive and a negative number can never overflow. The same effect causes Java's largest int, 2,147,483,647, plus 1 to wrap to −2,147,483,648 (Section 10.2).
Real numbers take approximations
Floating-point formats (IEEE 754) store a sign, an exponent, and a fraction in binary. Many decimal fractions, such as 0.1, repeat forever in binary, so they are stored approximately, which causes the round-off errors discussed in Sections 7.1 and 10.2.
A survey records each respondent's answer as one of 200 possible response codes. What is the minimum number of bits needed to store one response?
A district archives 2,000 hours of video at about 1.5 gigabytes per hour. Which unit best describes the total storage needed?
An 8-bit register holds 11110100. What value does it represent as a two's complement signed integer?
A student downloads a 1-gigabyte file over a connection that delivers a steady 100 megabits per second. About how long does the download take at best?