How to right shift negative number in C

1 Answer

0 votes
#include <stdio.h>

void print_bits(unsigned int n) { 
    int bit;
    for (int i = 31; i >= 0; i--) {
        bit = n >> i;
        if (bit & 1) {
            printf("1");
        }
        else {
            printf("0");
        }
    }
    printf("\n");
}

int main()
{
    int n = -0xFF;
    
    print_bits(n);
    
    n = n >> 1;
    
    print_bits(n);

    return 0;
}
  
   
   
/*
run:
  
11111111111111111111111100000001
11111111111111111111111110000000
   
*/

 



answered Jun 27, 2024 by avibootz

Related questions

1 answer 168 views
1 answer 117 views
1 answer 171 views
1 answer 156 views
1 answer 161 views
161 views asked Dec 29, 2020 by avibootz
...