In: Computer Science
Write a program that takes two command line arguments at the time the program is executed. You may assume the user enters only decimal numeric characters. The input must be fully qualified, and the user should be notified of any value out of range for a 23-bit unsigned integer. The first argument is to be considered a data field. This data field is to be is operated upon by a mask defined by the second argument. The program should display a menu that allows the user to select different bit-wise operations to be performed on the data by the mask. The required operations are: Set, Clear and Toggle. Both data and mask should be displayed in binary format. And they must be displayed such that one is above the other so that they may be visually compared bit by bit. If data and mask are both less than 256, then the binary display should only show 8 bits. If both values are less the 65536, then the binary display should only show 16 bits. The menu must also allow the user to re-enter a value for data and re-enter a value for the mask. Use scanf() to read data from the user at runtime and overwrite the original values provided at execution time. All user input must be completely qualified to meet the requirements above (up to 23-bit unsigned integer values). Printing binary must be done with shifting and bitwise operations. Do not use arrays. No multiplication or division is needed to produce binary output to the screen.