Question

Computers typically do not implement integer subtraction directly, but instead using addition and...

Computers typically do not implement integer subtraction directly, but instead using addition and negation.

To accomplish negation, they often use the formula −x = (x ˆ 11 . . . 1) + 1, which can be 3 implemented using bitwise XOR and addition.

The string 11 . . . 1 here represents the all 1’s string of length n, where n is the width of the CPU.

The addition is done modulo 2n. Verify that −x ≡ (x ˆ 11 . . . 1) + 1 (mod 2n) for n = 4 and x = 3. Show your work

0 0
Add a comment Improve this question Transcribed image text
Answer #1

Let

for x = 3

-x = -3

Finding -x using negation and addition:-

given, n=4 and x = 3

representing 3 in binary 11

Since, the width of CPU is 4 ( n = 4 )

So 3 can be represented as 0011 (width is 4 by adding 2 zeros before rightmost bit does not change the notation of 3)

0011 is same as 11

the negation of 0011 is 1100 [ negation is represented as '~' , where negation means changing 0's & 1's as 1's & 0's]

and addition of 1 gives:

~0011

1100 [representing 1 as 0 & 0 as 1]

+ 1 [a simple addition]

result= 1101

Therefore, -3 is represented as 1101 using negation and addition

Finding -x using the given formula for negation:-

-x = (x^11..1) + 1

where ^ represents bitwise xor operation

and the string 11..1 here represents the all 1's string of length n, where n is the width of the CPU and also the addition is done by using modulo 2n.

finally, the formula becomes

-x = (x^11..1) + 1 (mod 2n.)

given, n=4 and x = 3

Right hand side (R.H.S) :-

x = 3 -> in binary 3 = 11

doing xor with 1111 (since n =4 , string contains 4 1's )

11 same as 0011 (preceding zeros doesn't change the number)

Truth table for xor operation:-

input 1   input 2   output
0   0   0
0   1   1
1   0   1
1   1   1
0011

^ 1111

1100 (from the truth table of xor)

+ 1 [ 1 (mod 2n.) = 1 (mod 24 ) { given, n=4}= 1 (mod 16 ) = 1 ]

result = 1101

from the formula, result = 1101

Left hand side(L.H.S) -x = -3

Since, from the result of using negation and addition -3 is equal to 1101

By equating L.H.S = R.H.S

Therefore,

-3 = 1101
Hence verified that,

-x = (x^11..1) + 1 (mod 2n.)
where the string 11..1 represents the string 11..1 of length n,

and n is the width of the CPU.

Add a comment
Know the answer?
Add Answer to:
Computers typically do not implement integer subtraction directly, but instead using addition and...
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for? Ask your own homework help question. Our experts will answer your question WITHIN MINUTES for Free.
Similar Homework Help Questions
  • Computers typically do not implement integer subtraction directly, but instead using addition and negation. To accomplish...

    Computers typically do not implement integer subtraction directly, but instead using addition and negation. To accomplish negation, they often use the formula −x = (x ˆ 11 . . . 1) + 1, which can be 3 implemented using bitwise XOR and addition. The string 11 . . . 1 here represents the all 1’s string of length n, where n is the width of the CPU. The addition is done modulo 2n. Verify that −x ≡ (x ˆ 11...

  • Introduction: This experiment studies the design of an 8-bit adder/subtractor circuit using VHDL capture. The experiment...

    Introduction: This experiment studies the design of an 8-bit adder/subtractor circuit using VHDL capture. The experiment investigates the implementation of addition and subtraction operations with circuits. This lab uses the virtual simulation environment to validate the design practically in the FPGA board. Equipment: • This experiment requires Quartus Prime and the Intel's DE2-115 FPGA board. • All students should have the Intel QP and ModelSim-Intel-Starter-Edition softwares installed in personal computers. • VPN connection to UNB Network and remote desktop software...

  • 1. Specification Write a C program to implement a simple calculator that accepts input in the...

    1. Specification Write a C program to implement a simple calculator that accepts input in the following format and displays the result of the computation: calc [operand_1] [operator] [operand_2] The operands operand_1 and operand_2 are non-negative integers. The operator is one of the following: addition (+), subtraction (-), multiplication (x), division (/) and modulo (%). Note: For the multiplication operator, use letter ‘x’. If you use the asterisk ‘*’, your program will not work properly 2. Implementation • The program...

  • Implement the following statements using MS430 assembly instructions. You may use more than one, ...

    Implement the following statements using MS430 assembly instructions. You may use more than one, but you should minimize the number of instructions required. You can use both native and emulated instructions. Use hex notation for all numbers 1. (a) Move the word located in register R14 to R15 (b) Increment the word in R6 by 2. (c) Perform a bitwise ANDing of the word located at address 0x0240 with the datum in R15, placing the results in R15. (d) Rotate...

  • Objectives Problem solving using arrays and ArrayLists. Abstraction. Overview The diagram below illustrates a banner constructed...

    Objectives Problem solving using arrays and ArrayLists. Abstraction. Overview The diagram below illustrates a banner constructed from block-letters of size 7. Each block-letter is composed of 7 horizontal line-segments of width 7 (spaces included): SOLID                        as in block-letters F, I, U, M, A, S and the blurb RThere are six distinct line-segment types: TRIPLE                      as in block-letter M DOUBLE                   as in block-letters U, M, A LEFT_DOT                as in block-letters F, S CENTER_DOT          as in block-letter...

  • For this computer assignment, you are to write a C++ program to implement a class for...

    For this computer assignment, you are to write a C++ program to implement a class for binary trees. To deal with variety of data types, implement this class as a template. The definition of the class for a binary tree (as a template) is given as follows: template < class T > class binTree { public: binTree ( ); // default constructor unsigned height ( ) const; // returns height of tree virtual void insert ( const T& ); //...

  • #include <iostream> #include <iomanip> #include <vector> using namespace std; Part 1. [30 points] In this part,...

    #include <iostream> #include <iomanip> #include <vector> using namespace std; Part 1. [30 points] In this part, your program loads a vending machine serving cold drinks. You start with many foods, some are drinks. Your code loads a vending machine from foods, or, it uses water as a default drink. Create class Drink, make an array of drinks, load it and display it. Part 1 steps: [5 points] Create a class called Drink that contains information about a single drink. Provide...

  • First, read the article on "The Delphi Method for Graduate Research." ------ Article is posted below...

    First, read the article on "The Delphi Method for Graduate Research." ------ Article is posted below Include each of the following in your answer (if applicable – explain in a paragraph) Research problem: what do you want to solve using Delphi? Sample: who will participate and why? (answer in 5 -10 sentences) Round one questionnaire: include 5 hypothetical questions you would like to ask Discuss: what are possible outcomes of the findings from your study? Hint: this is the conclusion....

ADVERTISEMENT
Free Homework Help App
Download From Google Play
Scan Your Homework
to Get Instant Free Answers
Need Online Homework Help?
Ask a Question
Get Answers For Free
Most questions answered within 3 hours.
ADVERTISEMENT
ADVERTISEMENT