Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- int reversebinary(int n){
- int i, bit, skip=1;
- int bits=31, bits_to_skip=bits;
- int result=0;
- for(i=bits; i>=0; i--){
- bit = n & (1 << i);
- if(bit && skip == 1){
- skip = 0;
- bits_to_skip = i;
- }
- if(skip == 0 && bit) result |= 1 << (bits_to_skip-i);
- }
- return result;
- }
- int main(int argc, char **argv){
- int n=0;
- if (argc < 2){
- printf("usage: %s <number>\n", argv[0]);
- return -1;
- }
- n = atoi(argv[1]);
- if(n < 1 || n > 1000000000){
- printf("invalid number: %s, it must be 1 ≤ n ≤ 1000000000\n", argv[1]);
- return -1;
- }
- printf("%d\n", reversebinary(n));
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment