Number Representations

https://slides.com/georgelee/ics141-data-representation/live

Integer Notations

Base 10 Expansions

People naturally think of numbers in base 10. What does it mean to think of a number in base 10?

 

Each digit represents a power of 10. For example:

 

141 = 1 * 10^2 + 4 * 10^1 + 1 * 10^0

Base 2 Expansions

We know computers work in binary (on/off). What does a base 2 expansion of a binary number look like? What is the base 2 expansion of (1000 1101)2? What is the value of this number?

Octal and Hexadecimal

Octal Notation

Looking at binary is kinda rough. We can group these bits to make them easier to read. We can group bits into groups of 3. Since 2^3 = 8, we have octal.

 

Our previous example was (1000 1101)2. In octal, it would be (010 001 101)2 = (215)8.

 

What is the decimal value of (117)8?

Example: Unix Permissions

Users may have 3 types of permissions (or any combination): Read, write, execute. There's also separate permissions for owner, group, and everyone.

 

Since the permission is on/off, we can represent this in octal notation.

 

What permissions would 777 have? 755? 644? 400?

 

Hexadecimal Notation

We can also use groups of 4 to represent the bits. This is hexadecimal notation (2^4 = 16). This is the most common representation of bits.

 

The values are 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. So our example would be (1000 1101)2 = (8D)16.

 

What's the decimal value of (6F)16?

Converting from Decimal

Base Conversion

Recall the definition of a base 10 expansion. We can generate an expansion by successively dividing by 10. The remainder at each step is the digit in the number going from right to left.

Example: Base 10

Consider 311.

 

* 311 / 10 = 31 * 10 + 1

* 31 / 10 = 3 * 10 + 1

* 3 / 10 = 0 * 10 + 3

 

Digits go from bottom to top, and we have 311.

Example: Base 8

Now let's convert 311 to base 8.

 

* 311 / 8 = 38 * 8 + 7

* 38 / 8 = 4 * 8 + 6

* 4 / 8 = 0 * 8 + 4

 

Thus, 311 = (467)8.

Example: Base 16

Your turn. Convert 241 to base 16.

 

Signed/Unsigned Integers

Signed Integers

Thus far, we have been working with positive integers. To represent a negative integer, we need something to represent the sign.

 

For a signed integer, the leftmost (most significant) bit is the sign bit. 0 is positive and 1 is negative.

 

One's Complement

The simplest way to represent signed integers is using 1's complement. Positive integers remain the same (with a leading 0). Negative integers are represented by taking the positive representation and flipping all the bits (1's become 0's and 0's become 1's).

Example:

Consider 3 = (0011)2. What is -3 using one's complement?

 

What happens when you add the two together?

Two's Complement

The more common way to represent signed integers is using 2's complement. Positive integers remain the same. For negative integers, we take the positive representation and flip all the bits. Then, we add 1.

Example:

Consider 7 = (0111)2. What is the two's complement of 7?

 

What happens when you add the two together?

Data Representations

By George Lee

Data Representations

  • 922