求一个数二进制逆序之后的结果

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/ZhangaZhaoLong/article/details/96762447
  1. #define _CRT_SECURE_NO_WARNINGS 1

    #include <stdio.h>
    
    unsigned int Release_bit(unsigned int n)
    {
    	int i = 0;
    	int ret = 0;
    	int arr[32] = { 0 };
    
    	for (i = 31; i >= 0; i--)
    	{
    		arr[i] = (n & 1);
    		n = n >> 1;
    	}
    
    	for (i = 0; i < 32;i++)
    	{
    		arr[i] = (arr[i]) << i;
    		ret = (ret | arr[i]);
    	}
    
    	return ret;
    	//for (i = 0; i < 32; i++)//方法二
    	//{
    	//	ret = ret << 1;
    	//	num = (value & 1);
    	//	ret = (ret | num);
    	//	value = (value >> 1);
    	//}
    	//return ret;
    }
    
    int main()
    {
    	int n = 0;
    	int ret = 0;
    
    	scanf("%d", &n);
    	ret = Release_bit(n);
    	printf("%u", ret);  //这里必须写成%u表示无符号十进制
    
    	system("pause");
    	return 0;
    }
    

猜你喜欢

转载自blog.csdn.net/ZhangaZhaoLong/article/details/96762447
今日推荐