<< Chapter < Page Chapter >> Page >

For example, we interpret an 8-bit binary word b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0 as an integer x b 7 2 7 b 6 2 6 b 1 2 b 0 b 7 2 7 i 0 6 2 i b i in the 2's complement representation, and x ranges from -128 ( 2 7 ) to 127 ( 2 7 1 ). Several examples:

binary decimal
00000000 0
00000001 1
01000000 64
01111111 127
10000000 -128
10000001 -127
11000000 -64
11111111 -1

When x is a positive (negative) number in 2's complement format, x can be found by inverting each bit and adding 1 . For example, 01000000 is 64 in decimal and -64 is found by first inverting the bits to obtain 10111111 and adding 1 , thus -64 is 11000000 as shown in the above table. Because the MSB indicates the sign of the numberrepresented by the binary word, we call this bit the sign bit . If the sign bit is 0, the word represents positive number, while negative numbers have 1as the sign bit.

In 2's compliment representation, subtraction of two integers can be accomplished by usual binary summation bycomputing x y as x y . We investigate the operations on the 2's compliment numbers later . However, when you add two 2's complement numbers, you must keep in mind that the 1 inMSB is actually -1.

(2's complement): What are the decimal numbers corresponding to the 2's complement 8-bit binarynumbers; 01001101 , 11100100 , 01111001 , and 10001011 ?

Intentionally left blank.

Sometimes, you need to convert an 8-bit 2's complement number to a 16-bit number. What is the 16-bit 2's complementnumber representing the same value as the 8-bit numbers 01001011 and 10010111 ? The answer is 0000000001001000 and 1111111110010111 . For nonnegative numbers (sign bit = 0), you simply addenough 0's to extend the number of bits. For negative numbers, you add enough 1's. This operation is called sign extension . The same rule holds for extending a 16-bit 2's complement number to a 32-bit number.

For the arithmetic assembly instructions, C62x CPU has different versions depending on how it handles the signs.For example, the load instructions LDH and LDB load halfword and byte value to a 32-bit register with sign extension. That is, the loadedvalues are converted to 32-bit 2's complement number and loaded into a register. The instructions LDHU and LDBU do not perform sign extension. They simply fill zeros for theupper 16- and 24-bits, respectively.

For the shift right instructions SHR and SHRU , the same rule applies. The ADDU instruction simply treats the operands as unsigned values.

Fractional representation

Although using 2's compliment integers we can implement both addition and subtraction by usual binary addition (withspecial care for the sign bit), the integers are not convenient to handle to implement DSP algorithms. Forexample, If we multiply two 8-bit words together, we need 16 bits to store the result. The number of required wordlength increases without bound as we multiply numbers together more. Although not impossible, it is complicatedto handle this increase in word-length using integer arithmetic. The problem can be easily handled by usingnumbers between -1 and 1 , instead of integers, because the product of two numbers in -1 1 are always in the same range.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Finite impulse response. OpenStax CNX. Feb 16, 2004 Download for free at http://cnx.org/content/col10226/1.1
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Finite impulse response' conversation and receive update notifications?

Ask