

InterviewSolution
Saved Bookmarks
1. |
Assuming a integer 2-bytes, What will be the output of the program? |
Answer» The system will treat negative numbers in 2's complement method. Example: Assume the size of int is 2-bytes(16 bits). The integer value 1 is represented as given below: Binary of 1: 00000000 00000001 (this is for positive value of 1) 1's complement of binary 1: 11111111 11111110 2's complement of binary 1: 11111111 11111111 Thy system will store '11111111 11111111' in memory to represent '-1'. If we do left shift (3 bits) on 11111111 11111111 it will become as given below: 11111111 11111111 ---(left shift 3 times)---> 11111111 11111000. So, 11111111 11111000 ---(binary to hex)---> FF F8. (Required Answer) Note: How is the negative number obtained from 2's complement value? As stated above, -1 is represented as '11111111 11111111' in memory. So, the system will take 2's complement of '11111111 11111111' to the get the original negative value back. Example: Bit Representation of -1: 11111111 11111111 Since the left most bit is 1, it is a negative number. Then the value is 1's complement: 00000000 00000000 2's complement: 00000000 00000001 (Add 1 to the above result) Therefore, '00000000 00000001' = 1 and the sign is negative. Hence the value is -1. | |