C programming
This daily will allow you to practice more with the bit wise operators and shifts. Consider the following modification of the main program from daily 4 void set flag(unsigned int flag_holderl], int flag_position); void unset flag(unsigned int flag holder, int flag position); int check flag(unsigned int flag_holderl, int flag position); void display32_flags as array (unsigned int flag_holder); void display flags(unsigned int flag_holder[ int size); int main (int argc, char* argv[]) un signed int flag.holder(5] { };//Set the first integer to zero and all others to zero by default. set flag (flag_holder, 3) set flag(flag_holder, 16); set flag(flag_holder, 31); set flag (flag holder, 87); display flags(flag_holder, 5); printf("In "); unset flag (flag_holder, 31); unset flag (flag_holder, 3); set flag(flag_holder, 99); set flag(flag_holder, 100); display flags (flag_holder, 5); return e; Here I have changed the functions so that they take an array of integers instead of just one integer. This allows me to imagine that I have a long array of bits instead of an array of integers. The functions can now set, unset, check and display flags for any bit in the array of 5 integers that I have made (and should work for any size array as long as your bit index is in bounds of your array). I also changed the display behavior. Daily 4 displayed the flags as you would see them in a binary number but since this program is moving away from the idea of a binary number to store bits and moving toward the idea of having an array of bits the display 32 flags as array function will display the [0] bit first then [] and so on up to 31 whereas the display-32-flags function in daily 4 displays the [31] bit first and down to [0] Similarly the display flags function now takes an array of integers and displays one integer per line using the display_32_flagsas array function Your output should look exactly like the following