0% found this document useful (0 votes)
45 views17 pages

Computer Systems Architecture: Thorsten Altenkirch and Liyang Hu

The document provides an overview of binary addition and signed numbers in computer systems. It discusses long addition in decimal and binary, binary addition circuits like half adders and full adders, ripple carry adders, simulating addition in C, and different methods for representing negative numbers like sign and magnitude, ones' complement, excess-n, and two's complement. It also provides examples of 4-bit signed encodings and how the two's complement method works.

Uploaded by

dishatiwari
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
45 views17 pages

Computer Systems Architecture: Thorsten Altenkirch and Liyang Hu

The document provides an overview of binary addition and signed numbers in computer systems. It discusses long addition in decimal and binary, binary addition circuits like half adders and full adders, ripple carry adders, simulating addition in C, and different methods for representing negative numbers like sign and magnitude, ones' complement, excess-n, and two's complement. It also provides examples of 4-bit signed encodings and how the two's complement method works.

Uploaded by

dishatiwari
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 17

Binary Addition

Signed Numbers

Computer Systems Architecture


http://cs.nott.ac.uk/txa/g51csa/

Thorsten Altenkirch and Liyang Hu


School of Computer Science
University of Nottingham

Lecture 06: Binary Addition and Signed Numbers

Binary Addition

Signed Numbers

Long Addition
Long Addition in Decimal
6
+
2
0 1
9

2
8
1
1

9
1
1
1

5
8
0
3

1
2
1
4

4
8
0
2

1 3
1 7
1
Carry
3 0

0
0
1
1

1
1
0
0

1 0 7616
0 1 D516
0
1 1 14B16

Long Addition in Binary


+

0
1
1 1
1 0

1
1
1
1

1
0
1
0

1
1
0
0

= 118
= 213
Carry
= 331

Binary Addition

Signed Numbers

Single-Bit Adders
Half-Adder
A
0
0
1
1

S =AB
C =AB

B
0
1
0
1

C
0
0
0
1

S
0
1
1
0

Cout
0
0
0
1
0
1
1
1

S
0
1
1
0
1
0
0
1

Full-Adder

S = A B Cin
Cout = (AB)(B Cin )(ACin )

A
0
0
0
0
1
1
1
1

B
0
0
1
1
0
0
1
1

Cin
0
1
0
1
0
1
0
1

Binary Addition

Signed Numbers

Ripple Carry Adder


A chain of full-adders can sum as many bits as needed
The Cout of each adder is wired to the Cin of the next
Present the nth bit of inputs A and B to the nth adder
Set C0 to 0; carry out C4 indicates overflow
Calculates S = A + B, where Sn is the nth bit of S. . .

The carry bits ripples across the full adders


Simplest, but not the fastest (c.f. carry look-ahead)
4-Bit Ripple Carry Adder

Binary Addition

Signed Numbers

Simulating addition in C
Inputs x, y ;
ci=0;
z=0;
for(i=0;i<sizeof(x)*8;i++) {
xi=x&(1<<i);
yi=y&(1<<i);
zi=xi^yi^ci;
csi=(xi&yi)|(yi&ci)|(xi&ci);
z=z|zi;
ci=csi;
}
Output: z.
For illustration only!
Nobody would implement addition in software!

Binary Addition

Signed Numbers

Representing Negative Numbers


How are negative numbers represented on a computer?
Sign and Magnitude
What we use in decimal notation: +/ and 0, 1, 2,

Ones Complement

Represent x by its bitwise inverse (NOT)

Excess-n

Zero represented by binary n: 02 is thus n

Twos Complement

For an n-bit number, represent x by 2n x

How do we add two integers in the above systems?

Binary Addition

Signed Numbers

Example of 4-Bit Signed Encodings


Sign and Mag.
1111
1110
1101
1100
1011
1010
1001
1000
0000
0001
0010
0011
0100
0101
0110
0111

7
6
5
4
3
2
1
0
+0
+1
+2
+3
+4
+5
+6
+7

Ones Comp.
1000
1001
1010
1011
1100
1101
1110
1111
0000
0001
0010
0011
0100
0101
0110
0111

7
6
5
4
3
2
1
0
+0
+1
+2
+3
+4
+5
+6
+7

Twos Comp.

Excess-3
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111

3
2
1
0
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12

1000
1001
1010
1011
1100
1101
1110
1111
0000
0001
0010
0011
0100
0101
0110
0111

8
7
6
5
4
3
2
1
0
+1
+2
+3
+4
+5
+6
+7

Binary Addition

Signed Numbers

Method of Complements
In base b with n digits, represent x using b n x
But theres a quicker way to calculate b n x:

Subtract each digit of x from b 1, then add 1 to result

Addition as for unsigned numbers; just ignore carry digit


Calculate 8192 4235 Using Tens Complement
9999
4235
8192
5764 , then add: + 5765
Negate:
+
1
13957
5765
Drop the carry digit: thus 8192 4235 = 3957

Binary Addition

Signed Numbers

Twos Complements
In base 2 with n bits, represent x using 2n x
But theres a quicker way to calculate 2n x:

Take the bitwise inverse (NOT) of x, then add 1 to result

Addition as for unsigned numbers; just ignore carry bit


Conventionally we take the MSB to represent the sign
0 for positive, 1 for negative

Thus n bits can represent from 2n1 up to 2n1 1


All modern processors primarily use twos complement
Includes all the MIPSs integer arithmetic instructions
Different instruction variants for signed and unsigned
But floating point (future lecture) uses sign and
magnitude as well as excess-n

Binary Addition

Signed Numbers

Alternative View
8-Bit Twos Complement (128 x < 127)
MSB
Bit 7th 6th
Weight 27 26

th

5
25

th

4
24

rd

3
23

nd

2
22

st

1
21

LSB
0th
20

Exercises
Calculate 81 42 in 8-bit twos complement
We can negate $s0 using nor $s0, $zero, $s0
addi $s0, $s0, 1
For what number will this not work?

Binary Addition

Signed Numbers

Thursday quiz

Most of the following questions are multiple choice. There is


at least one correct choice but there may be several. For each
of the questions list all the roman numerals corresponding to
correct answers but none of the incorrect ones.
Questions are marked as follows:
no errors 5 points
1 error
3 points
2 errors
1 point
3 errors
0 points

Binary Addition

Signed Numbers

Thursday quiz

1. Which of the following statements about MIPS


machine code are correct?
a
MIPS machine code consists of symbolic
instructions?
b
Each instruction is 32 bytes long.
c
There are 3 basic formats: R,I,J.
d
The opcode always occupies the leftmost 6
bits.
e
The position of the opcode varies with the
instruction.

Binary Addition

Signed Numbers

Thursday quiz

2. What do we mean by data transfer instructions?


a
Instructions to load memory data into
registers.
b
Instructions to store regsiters into memory.
c
Instructions to read data from a keyboard.
d
Instructions to write data on the console.
e
Instructions to transfer data over the
internet.

Binary Addition

Signed Numbers

Thursday quiz

2. What do we mean by data transfer instructions?


a
Instructions to load memory data into
registers.
b
Instructions to store registers into memory.
c
Instructions to read data from a keyboard.
d
Instructions to write data on the console.
e
Instructions to transfer data over the
internet.

Binary Addition

Signed Numbers

Thursday quiz
3. What does the following program fragment do?
num:

a
b
c
d
e

.word 0
...
la $s0,num
li $t0,1
sb $t0,1($s0)
lw $t1,($s0)

It
It
It
It
It

stores 1 in register $t1.


stores 256 in register $t1.
modifies a byte in memory.
divides the content of $t0 by 256.
multiplies the content of $t0 by 256.

Binary Addition

Signed Numbers

Thursday quiz

4. What can we say about goto?


a

d
e

It is the recommended way to implement


loops in high level languages.
Dikstra wrote a letter titled
Goto Statment considered useful.
In machine language goto statments (or
jumps) are used to implement control flow.
Java has a goto statement.
C++ has a goto statement.

Binary Addition

Signed Numbers

Thursday quiz

5. What is bge in MIPS assembler code?


a
b
c
d
e

A machine instruction.
A pseudoinstruction.
A conditional jump.
An unconditional jump.
A data transfer instruction.

You might also like