# Learning CS from the Ground Up（3）

# Understanding Computer Ⅲ:

# A Comprehensive Guide to Computer Number Systems and Encoding

In this article, we’ll explore the fascinating world of computer number systems and encoding. Understanding these concepts is essential for anyone interested in computer science, as they form the foundation of how computers process and represent information. We’ll start with the basics and then delve into the various number systems commonly used in computing, including binary, octal, decimal, and hexadecimal.

## Table of Contents

- Introduction to Number Systems
- Binary (Base 2)
- Octal (Base 8)
- Decimal (Base 10)
- Hexadecimal (Base 16)
- Converting Between Number Systems
- Encoding
- Conclusion

## 1. Introduction to Number Systems

A number system, also known as a numeral system, is a way to represent numbers using a set of symbols. The base (or radix) of a number system determines the number of unique digits used. For example, the decimal system has a base of 10, which means it uses 10 unique digits (0-9).

Computers use different number systems for various purposes, with the most common being binary, octal, decimal, and hexadecimal. Each of these systems has its unique characteristics, which we’ll discuss in the following sections.

## 2. Binary (Base 2)

Binary is the most basic number system used in computing. It uses only two digits, 0 and 1, which correspond to the two states of a digital circuit (off and on, respectively). Each digit in a binary number is called a bit.

### Binary Representation:

Decimal | Binary |
---|---|

0 | 0000 |

1 | 0001 |

2 | 0010 |

3 | 0011 |

4 | 0100 |

5 | 0101 |

6 | 0110 |

7 | 0111 |

8 | 1000 |

9 | 1001 |

## 3. Octal (Base 8)

Octal is another number system used in computing, with a base of 8. It uses the digits 0-7 and is often used as a shorthand for binary, as each octal digit can represent three binary digits (bits).

### Octal Representation:

Decimal | Octal | Binary |
---|---|---|

0 | 0 | 000 |

1 | 1 | 001 |

2 | 2 | 010 |

3 | 3 | 011 |

4 | 4 | 100 |

5 | 5 | 101 |

6 | 6 | 110 |

7 | 7 | 111 |

## 4. Decimal (Base 10)

The decimal system is the most widely used number system in daily life. It has a base of 10 and uses the digits 0-9.

Decimal | Binary | Octal | Hexadecimal |
---|---|---|---|

0 | 0000 0000 | 000 | 00 |

1 | 0000 0001 | 001 | 01 |

2 | 0000 0010 | 002 | 02 |

3 | 0000 0011 | 003 | 03 |

4 | 0000 0100 | 004 | 04 |

5 | 0000 0101 | 005 | 05 |

6 | 0000 0110 | 006 | 06 |

7 | 0000 0111 | 007 | 07 |

8 | 0000 1000 | 010 | 08 |

9 | 0000 1001 | 011 | 09 |

10 | 0000 1010 | 012 | 0A |

11 | 0000 1011 | 013 | 0B |

12 | 0000 1100 | 014 | 0C |

13 | 0000 1101 | 015 | 0D |

14 | 0000 1110 | 016 | 0E |

15 | 0000 1111 | 017 | 0F |

This table demonstrates the relationship between decimal numbers and their respective binary, octal, and hexadecimal representations.

## 5. Hexadecimal (Base 16)

Hexadecimal is a number system with a base of 16, widely used in computing for its compact representation of binary numbers. It uses the digits 0-9 and the letters A-F to represent the values 10-15.

### Hexadecimal Representation:

Decimal | Binary | Octal | Hexadecimal |
---|---|---|---|

10 | 0000 1010 | 012 | 0A |

11 | 0000 1011 | 013 | 0B |

12 | 0000 1100 | 014 | 0C |

13 | 0000 1101 | 015 | 0D |

14 | 0000 1110 | 016 | 0E |

15 | 0000 1111 | 017 | 0F |

## 6. Converting Between Number Systems

Converting between number systems is a crucial skill in computer science. Here’s a brief overview of the conversion methods:

- Binary to Decimal: Multiply each binary digit by its corresponding power of 2 and sum the results.
- Decimal to Binary: Repeatedly divide the decimal number by 2 and record the remainders in reverse order.
- Binary to Octal/Hexadecimal: Group the binary digits into groups of three/four and replace each group with its corresponding octal/hexadecimal digit.
- Octal/Hexadecimal to Binary: Replace each octal/hexadecimal digit with its corresponding three/four-digit binary representation.

## 7. Encoding

Encoding is the process of converting information into a specific format for efficient storage or transmission. In computing, data is often encoded into binary to facilitate processing by digital circuits. Some common encoding schemes include:

- ASCII (American Standard Code for Information Interchange): A 7-bit character encoding scheme that represents 128 characters, including letters, digits, punctuation marks, and control characters.
- UTF-8 (Unicode Transformation Format - 8-bit): A variable-width character encoding that can represent over a million characters from various scripts and symbol sets, including ASCII.
- UTF-16 and UTF-32: Similar to UTF-8, but with 16-bit and 32-bit units, respectively.

## 8. Conclusion

Understanding computer number systems and encoding is essential for anyone interested in computer science or programming. By mastering binary, octal, decimal, and hexadecimal systems, as well as the methods of converting between them and encoding data, you’ll have a solid foundation for further exploration in the field.