I have implemented the below function in C but it is not working properly.
int reverse(int org_num){
int rev_num=0;
int i=1;
while(i<=8){
int last_bit=org_num&1;
rev_num=rev_num|last_bit;
rev_num=rev_num<<1;
org_num=org_num>>1;
i=i+1;
}
return rev_num; }
I solved the problem by breaking the loop for the last bit since that is not required.
int reverse(int org_num){
int rev_num=0;
int i=1;
while(i<=8){
int last_bit=org_num&1;
rev_num=rev_num|last_bit;
if(i==8) {
break;
}
rev_num=rev_num<<1;
org_num=org_num>>1;
i=i+1;
}
return rev_num;
}