/* Binary.c (c) Kari Laitinen http://www.naturalprogramming.com/ 2013-11-28 File created. 2013-11-28 Last modification. */ #include void print_in_binary_form( int given_integer ) { // This program works only with 32-bit int variables. // To make this program work with 16-bit int variables, // you should use initial mask 0x8000 and let the loop // be executed only 16 times. unsigned int bit_mask = 0x80000000 ; unsigned int one_bit_in_given_integer ; int bit_counter ; for ( bit_counter = 0 ; bit_counter < 32 ; bit_counter ++ ) { one_bit_in_given_integer = given_integer & bit_mask ; if ( one_bit_in_given_integer == 0 ) { printf( "%s", "0" ) ; } else { printf( "%s", "1" ) ; } bit_mask = bit_mask >> 1 ; } } int main() { unsigned int test_number = 0x9A9A ; printf( "\n Original test number: " ) ; print_in_binary_form( test_number ) ; printf( "\n Twice left-shifted form: " ) ; test_number = test_number << 2 ; print_in_binary_form( test_number ) ; printf( "\n Back to original form: " ) ; test_number = test_number >> 2 ; print_in_binary_form( test_number ) ; printf( "\n Last four bits zeroed: " ) ; test_number = test_number & 0xFFF0 ; print_in_binary_form( test_number ) ; printf( "\n Last four bits to one: " ) ; test_number = test_number | 0x000F ; print_in_binary_form( test_number ) ; printf( "\n A complemented form: " ) ; test_number = ~test_number ; print_in_binary_form( test_number ) ; printf( "\n Exclusive OR with 0xF0F0:" ) ; test_number = test_number ^ 0xF0F0 ; print_in_binary_form( test_number ) ; }