Home / convert 2 s complement to decimal / C5 Solutions 1. Convert the following base 10 numbers into 8 …

C5 Solutions 1. Convert the following base 10 numbers into 8 … - convert 2 s complement to decimal


C5 Solutions 1. Convert the following base 10 numbers into 8 …-convert 2 s complement to decimal

C5 Solutions
1. Convert the following base 10 numbers into 8-bit 2's complement notation
0, -1, -12
To Compute 0
0 = 00000000
To Compute -1
Step 1. Convert 1 to binary
00000001
Step 2. Flip the bits
11111110
Step3. Add 1
11111111
Therefore -1 = 11111111
To Compute -12
Step 1. Convert 12 to binary
00001100
Step 2. Flip the bits
11110011
Step3. Add 1
11110100
Therefore -12 = 11110100
2. Perform each of the following additions assuming that the bit strings represent
values in 2's complement notation. Identify the cases in which the answer is
incorrect because of overflow.
1111
+ 1111
11110
Answer = 11110
Overflow = 0
Answer is correct
01111
+ 10001
100000
Answer = 00000
Overflow = 1
Answer is incorrect
01110
+ 01010
11000
Answer = 11000
Overflow = 0
Answer is correct
3. Write an algorithm to convert a negative decimal number into a binary number in
2's complement form. Assume that the number ranges from +127 to -128
1. If the number is less than 0
a. Multiply by -1
b. Flip the bits by `number XOR 0xff'
c. Add 1 to the result
2. Convert the number into binary
Hint: You already know how to convert a positive decimal number into binary
notation. Think about determining sign and inverting bit positions.
4. Implement your algorithm in Ada95. Turn in an electronic copy of your code
listing and a hard copy of your code.
GNAT 3.13p (20000509) Copyright 1992-2000 Free Software Foundation, Inc.
Compiling: c:/docume~2/jk/desktop/16070/codeso~1/decimal_to_binary.adb (source file time stamp: 2003-
09-17 11:09:18)
1. with Ada.Text_Io;
2. use Ada.Text_Io;
3.
4. with Ada.Integer_Text_Io;
5. use Ada.Integer_Text_Io;
6.
7. procedure Decimal_To_Binary is
8.
9. -- bit-wise operations are only defined for modular types
10. type byte is mod 256;
11.
12. Number_To_Convert : integer;
13. Place_Holder: Byte;
14.
15. Binary_Number : String (1..8);
16. Count : Integer :=8;
17.
18.
19. begin
20. -- set the string to all zeroes
21. Binary_Number :="00000000";
22.
23. -- get the number to be converted
24. Put("Please enter an integer :");
25. Get(Number_To_Convert);
26.
27. -- check if the number is negative. If it is,
28. -- convert it into positive
29. if Number_To_Convert < 0 then
30.
31. Number_To_Convert := -1 * Number_To_Convert;
32.

How to calculate two's complement? How do you calculate two's complement? Convert given number in binary number. Change all 0's of binary number to 1 and all 1's to 0. Add 1 to the number produced in last step.