#### Overview of this book

Preface
Section 1: Introduction to Computer Programs and Computer Programming
Free Chapter
Chapter 1: Introduction to Computer Programs
Chapter 2: Introduction to Programming Languages
Chapter 3: Types of Applications
Chapter 4: Software Projects and How We Organize Our Code
Section 2: Constructs of a Programming Language
Chapter 5: Sequence – The Basic Building Block of a Computer Program
Chapter 6: Working with Data – Variables
Chapter 7: Program Control Structures
Chapter 8: Understanding Functions
Chapter 9: When Things Go Wrong – Bugs and Exceptions
Chapter 11: Programming Tools and Methodologies
Section 3: Best Practices for Writing High-Quality Code
Chapter 12: Code Quality
Other Books You May Enjoy
Appendix A: How to Translate the Pseudocode into Real Code
Appendix B: Dictionary

# Understanding the binary system

Why is it that computers only work with zeros and ones? Why can't they work directly with text or images, for example? The answer is that it is rather easy to build circuits that can represent two states. If you have an electrical wire, you can either run electricity through it or not. The flow or no flow of electricity could represent several things, such as on or off, true or false, or zero or one. Let's think of these two states as zero and one for now, with zero representing no electricity flowing and one symbolizing that we do have flow. If we can serve these two states, we could add more wires and, by doing that, have more zeros and ones.

But what could we possibly do with all of these zeros and ones? Well, the answer is that we can do almost anything. For example, with only zeros and ones, we can represent any integer by using the binary numeral system. Let's demonstrate how that works.

To understand binary numbers, we must...