I\'m working on making a logical right shift function in C using only bitwise operators. Here\'s what I have:
int logical_right_shift(int x, int n) { int
I think problem is in your ">> (n-1)" part. If n is 0 then left part will be shift by -1. So,here is my solution
int logical_right_shift(int x, int n) { int mask = ~(-1 << n) << (32 - n); return ~mask & ( (x >> n) | mask); }