Number Systems, Operations, and Codes
Number Systems, Operations, and Codes
Decimal Numbers The position of each digit in a weighted number system is assigned a weight based on the base ()or radix() of the system. The radix of decimal numbers is ten, because only ten symbols (0 through 9) are used to represent any number. The column weights of decimal numbers are powers of ten that increase from right to left beginning with 100 =1: 105 104 103 102 101 100. For fractional decimal numbers, the column weights are negative powers of ten that decrease from left to right: 102 101 100. 10-1 10-2 10-3 10-4
2
Decimal Numbers Decimal numbers can be expressed as the sum of the products of each digit times the column value for that digit. Thus, the number 9240 can be expressed as (9 x 103) + (2 x 102) + (4 x 101) + (0 x 100) or 9 x 1,000 + 2 x 100 + 4 x 10 + 0 x 1
Express the number 480.52 as the sum of values of each digit.
480.52 = (4 x 102) + (8 x 101) + (0 x 100) + (5 x 10-1) +(2 x 10-2)
3
Binary Numbers
For digital systems, the binary number system is used. Binary has a radix of two and uses the digits 0 and 1 to represent quantities. The column weights of binary numbers are powers of two that increase from right to left beginning with 20 =1: 25 24 23 22 21 20. For fractional binary numbers, the column weights are negative powers of two that decrease from left to right: 22 21 20. 2-1 2-2 2-3 2-4
Decimal Number
Binary Number
Binary Numbers
A binary counting sequence for numbers from zero to fifteen is shown.
Notice the pattern of zeros and ones in each column. Digital counters frequently have this same pattern of digits:
Counter 0 0 0 0 1 0 0 0 0 1 0 0 1 1 0 0 0 0 1 0 1 0 1 0 0 1 1 0 1 1 1 0 0 0 0 1 1 0 0 1 Decoder
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
5
10
Convert the decimal fraction 0.188 to binary by repeatedly multiplying the fractional results by 2.
MSB 0.188 x 2 = 0.376 carry = 0 0.376 x 2 = 0.752 carry = 0 0.752 x 2 = 1.504 carry = 1 0.504 x 2 = 1.008 carry = 1 0.008 x 2 = 0.016 carry = 0 Answer = .00110 (for five significant digits)
11
base
12
Binary Addition
The rules for binary addition are 0+0=0 Sum = 0, carry = 0 0+1=0 Sum = 1, carry = 0 1+0=0 Sum = 1, carry = 0 1 + 1 = 10 Sum = 0, carry = 1 When an input carry = 1 due to a previous result, the rules are 1 + 0 + 0 = 01 Sum = 1, carry = 0 1 + 0 + 1 = 10 Sum = 0, carry = 1 1 + 1 + 0 = 10 Sum = 0, carry = 1 1 + 1 + 1 = 10 Sum = 1, carry = 1
13
Binary Addition
Add the binary numbers 00111 and 10101 and show the equivalent decimal addition.
0111
00111 10101
7 21
11100 = 28
14
Binary Subtraction
The rules for binary subtraction are 0-0=0 1-1=0 1-0=1 10 - 1 = 1 with a borrow of 1 Subtract the binary number 00111 from 10101 and show the equivalent decimal subtraction.
111 / / / 10101
21 00111 7 01110 = 14
15
1s Complement
The 1s complement of a binary number is just the inverse of the digits. To form the 1s complement, change all 0s to 1s and all 1s to 0s. For example, the 1s complement of 11001010 is 00110101 In digital circuits, the 1s complement is formed by using inverters: 1 1 0 0 1 0 1 0
1
16
2s Complement
The 2s complement of a binary number is found by adding 1 to the LSB of the 1s complement. Recall that the 1s complement of 11001010 is 00110101 (1s complement) +1 To form the 2s complement, add 1: 00110110 (2s complement) 1 1 0 0 1 0 1 0
1
0
Input bits Adder
1
Carry in (add 1)
0
18
21
An easy way to read a signed number that uses this notation is to assign the sign bit a column weight of -128 (for an 8-bit number). Then add the column weights for the 1s. Assuming that the sign bit = -128, show that 11000110 = -58 as a 2s complement signed number: Column weights: -128 64 32 16 8 4 2 1. 1 1 0 0 0 1 1 0 -128 +64 +4 +2 = -58
22
Sign bit
Express the speed of light, c, in single precision floating point notation. (c = 0.2998 x 109) In binary, c = 0001 0001 1101 1110 1001 0101 1100 00002. In scientific notation, c = 1.0001 1101 1110 1001 0101 1100 0000 x 228. S = 0 because the number is positive. E = 28 + 127 = 15510 = 1001 10112. F is the next 23 bits after the first 1 is dropped. In floating point notation, c = 0 10011011 0001 1101 1110 1001 0101 110
23
Discard carry
24
Discard carry
Wrong! The answer is incorrect and the sign bit has changed.
25
Arithmetic Operations with Signed Numbers Rules for subtraction: 2s complement the subtrahend and add the numbers. Discard any final carries. The result is in signed form. Repeat the examples done previously, but subtract:
00011110 (+30) 00001110 (+14) 11111111 (-1) - 00001111 (+15) - 11101111 (-17) - 11111000 (-8)
Discard carry
26
Hexadecimal Numbers Hexadecimal uses sixteen characters to represent numbers: the numbers 0 through 9 and the alphabetic characters A through F.
Large binary number can easily be converted to hexadecimal by grouping bits 4 at a time and writing the equivalent hexadecimal character.
Express 1001 0110 0000 11102 in hexadecimal: Group the binary number by 4-bits starting from the right. Thus, 960E
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 1 2 3 4 5 6 7 8 9 A B C D E F
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
27
Hexadecimal Numbers Hexadecimal is a weighted number system. The column weights are powers of 16, which increase from right to left.
Column weights
16 16 16 16 . {4096 256 16 1 .
3 2 1 0
Express 1A2F16 in decimal. Start by writing the column weights: 4096 256 16 1 1 A 2 F16 1(4096) + 10(256) +2(16) +15(1) = 670310
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 1 2 3 4 5 6 7 8 9 A B C D E F
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
28
In a 2nd example, the value 10 was substituted for A and 15 substituted for F.
29
30
31
The binary number is grouped into groups of four bits and each is converted to its equivalent hex digit.
32
To perform conversions between hex & binary, it is necessary to know the four-bit binary numbers (0000 - 1111), and their quivalent hex digits.
33
Octal Numbers Octal uses eight characters the numbers 0 through 7 to represent numbers. There is no 8 or 9 character in octal. Binary number can easily be converted to octal by grouping bits 3 at a time and writing the equivalent octal character for each group.
Express 1 001 011 000 001 1102 in octal: Group the binary number by 3-bits starting from the right. Thus, 1130168
Decimal
Octal
Binary
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
34
Octal Numbers Octal is also a weighted number system. The column weights are powers of 8, which increase from right to left.
Column weights
8 {512
3
Decimal
Octal
Binary
82 64
81 8
80 . 1 .
Express 37028 in decimal. Start by writing the column weights: 512 64 8 1 3 7 0 28 3(512) + 7(64) +0(8) +2(1) = 198610
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
35
BCD
Binary coded decimal (BCD) is a weighted code that is commonly used in digital systems when it is necessary to show decimal numbers such as in clock displays.
The table illustrates the difference between straight binary and BCD. BCD represents each decimal digit with a 4bit code. Notice that the codes 1010 through 1111 are not used in BCD.
Decimal
Binary
BCD
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 0001 0000 0001 0001 0001 0010 0001 0011 0001 0100 0001 0101
36
BCD
Binary Coded Decimal (BCD) is a widely used way to present decimal numbers in binary form. Combines features of both decimal and
binary systems. Each digit is converted to a binary equivalent.
Decimal
Binary
BCD
BCD is not a number system. It is a decimal number with each digit encoded to its binary equivalent. A BCD number is not the same as a straight binary number. The primary advantage of BCD is the relative
ease of converting to and from decimal.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 0001 0000 0001 0001 0001 0010 0001 0011 0001 0100 0001 0101
37
BCD
Convert the number 87410 to BCD:
Each decimal digit is represented using 4 bits. Each 4-bit group can never be greater than 9.
38
BCD
The forbidden group represents an error in the BCD number. You can think of BCD in terms of column weights in groups of four bits. For an 8-bit BCD number, the column weights are:
80 40 20 10 8 4 2 1. What are the column weights for the BCD number 1000 0011 0101 1001? 8000 4000 2000 1000 800 400 200 100 80 40 20 10 8 4 2 1 Note that you could add the column weights where there is a 1 to obtain the decimal number. For this case: 8000 + 200 +100 + 40 + 10 + 8 +1 = 835910
39
Gray code
Gray code is an unweighted code that has a single bit change between one code word and the next in a sequence. Gray code is used to avoid problems in systems where an error can occur if more than one bit changes at a time.
Decimal
Binary
Gray code
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 1111 1110 1010 1011 1001 1000
40
Binary to Gray
Gray to Binary
43
Conversion Example
44
Binary sequence
45
46
ASCII is a code for alphanumeric characters and control characters. In its original form, ASCII encoded 128 characters and symbols using 7-bits. The first 32 characters are control characters, that are based on obsolete teletype requirements, so these characters are generally assigned to other functions in modern usage.
In 1981, IBM introduced extended ASCII, which is an 8bit code and increased the character set to 256. Other extended sets (such as Unicode) have been introduced to handle characters in languages other than English.
47
In 1981, IBM introduced extended ASCII, which is an 8-bit code and increased the character set to 256. Other extended sets (such as Unicode) have been introduced to handle characters in languages other than English.
48
Parity Method The parity method is a method of error detection for simple transmission errors involving one bit (or an odd number of bits). A parity bit is an extra bit attached to a group of bits to force the number of 1s to be either even (even parity) or odd (odd parity).
The ASCII character for a is 1100001 and for A is 1000001. What is the correct bit to append to make both of these have odd parity? The ASCII a has an odd number of bits that are equal to 1; therefore the parity bit is 0. It means with parity bit is 01100001 The ASCII A has an even number of bits that are equal to 1; therefore the parity bit is 1. 11000001
49
Cyclic Redundancy Check The cyclic redundancy check (CRC) is an error detection method that can detect multiple errors in larger blocks of data. At the sending end, a checksum is appended to a block of data. At the receiving end, the check sum is generated and compared to the sent checksum. If the check sums are the same, no error is detected.
50