$25
1) Write a program in the language of your choice (c ,c++, java, python, etc.) which takes as input an integer (positive or negative) in base 10, and returns a string representation in 32-bit of the number in hexadecimal and binary. a. Use a twos-complement representation for negative numbers b. You can create an array of symbols 0-F to make it easier to figure out each digit. i. char digits[]=[‘0’,’1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’,’A’,’B’,’C’,’D’,’E’,’F’]; ii. then digits[12] will return ‘C’ c. You should convert the absolute value to binary first, then take the twos complement if the value is negative, then convert the binary to hexadecimal d. You may not use any built in conversion operators or print operators that can do the conversion automatically (i.e. NO printf(‘%x’,number)).
2) Write a program in the language of your choice which takes as input a string representation of an unsigned hexadecimal number in 32 bits and returns the positive integer that is the base 10 equivalent. a. You do not need to worry about negative values for this question b. You can use a dictionary, or brute force to convert hex digits to numbers (i.e. write a function with a bunch of if statements or a select statement to deal with digits A-F. or store the values 0-F as keys in a dictionary with the values being the number the digit represents.
For both programs, all non-decimal numbers should be assumed to be 32-bit. When inputting or outputting binary or hex, please make sure the numbers represented are full 32-bit numbers. Do not leave off the leading 0’s or 1’s.
Binary: 00001111110111010101111111011101 (32 digits)
Hex: 0FDD5FDD (8 digits long)