左右翻转二进制数==》繁琐与精简

实现:

//00000000000000000000000000011001

//10011000000000000000000000000000

这种翻转

方法一和方法二思路大致一样,可以方法二却十分麻烦。

方法一(简单)

#include<stdio.h>
#include<math.h>
unsigned int  reverse_bit(unsigned int value)
{
        int i = 0;
        unsigned int Value ;
        unsigned int num = 0;
for (i = 1; i <= 32; i++)
{
        Value = value;
        int b = ((value%2)&&1);
        num = num + b*(pow(2, (32 - i)));
        value=Value >> 1;
}
return num;
}
int main()
{
        unsigned int number = 25;
        printf("%u", reverse_bit(number));
}

方法二(思想简单但写的十分复杂,我都不知道我咋想出来的)
#include<stdio.h>
#include<math.h>
unsigned int zhishu(int x, int cishu)
{
	unsigned int num = pow(2, cishu);
	return (x*num);
}
int num_sing(int max)
{
	if (max % 2 == 0)
	{
		return 0;
	}
	else
	{
		return 1;
	}
}
unsigned int fzsign(unsigned int a)
{
	unsigned int num = 0;
	int sing = num_sing(a);
	int cishu = 0 + sing;
	unsigned int tmp = a;
	unsigned int b = 0;
	while (a != sing)
	{
		a = a / 2;
		cishu++;
	}
	/*printf("%d\n", cishu);*/
	int sings = num_sing(tmp);
	int tmp2 = cishu;
	cishu = cishu - 1;
	while (tmp != sings)
	{
		b = tmp % 2;
		tmp = tmp / 2;
		num = num + zhishu(b, cishu);
		cishu--;
	}
	num = num + sings;
	num = num << (32 - tmp2);
	return num;

}
int main()
{
	unsigned int a = 25;
	unsigned int num=fzsign(a);
		printf("%u", num);

}
     法二像不像大杂烩!!!
时间: 2024-12-14 02:52:15

左右翻转二进制数==》繁琐与精简的相关文章

scrapy--BeautifulSoup

BeautifulSoup官方文档:https://beautifulsoup.readthedocs.io/zh_CN/latest/#id8 太繁琐的,精简了一些自己用的到的. 1.index.html <html><head><title>The Dormouse's story</title></head> <body> <p class="title"><b>The Dormous

leetcode——190 Reverse Bits(32位无符号二进制数的翻转)

Reverse bits of a given 32 bits unsigned integer. For example, given input 43261596 (represented in binary as 00000010100101000001111010011100), return 964176192 (represented in binary as 00111001011110000010100101000000). Follow up: If this function

Python编程快速上手让繁琐工作自动化 第十二章实践项目12.13.3 电子表格单元格翻转程序

代码如下: 原文地址:https://blog.51cto.com/lisiyun/2388316

翻转课堂教学感受调查

数据结构课程结束,进行了教学感受调查.记录并发布例如以下. 開始时间:2015-12-22 结束时间:2016-1-17 样本总数:78 份 原始数据来源:http://www.sojump.com 本报告包括样本数量:78份 第1题 假设再学一次数据结构,你希望老师採用____ [单选题] 第2题 对于翻转课堂中,你有切身体会的优点有__ [多选题] 第3题 关于课前视频.依据对同学们学习需求的分析,採取了精讲的策略. 你认为_ [单选题] 第4题 整体而言.课前视频___ [多选题] 第5题

LeetCode:Reverse Integer - 翻转数字

1.题目名称 Reverse Integer(翻转数字) 2.题目地址 https://leetcode.com/problems/reverse-integer/ 3.题目内容 英文:Reverse digits of an integer. 中文:翻转一个正整数的各位,形成一个新数字 例如:x = 123, return 321:x = -123, return -321 4.一个有瑕疵的方法(不能AC) 一个比较好想到的方法,是先将输入的数字转换为字符串,再将字符串翻转后转换为数字.这个方

[置顶][终极精简版][图解]Nginx搭建flv mp4流媒体服务器

花了我接近3周,历经了重重问题,今日终于把流媒体服务器搞定,赶紧的写个博文以免忘记... 起初是跟着网上的一些教程来的,但是说的很不全面,一些东西也过时不用了(比如jwplayer老版本).我这次是用的最新版jwplayer6.8,在配置上有很多不同的地方,也很坑,值得注意一下!在配置方面,我精简了很多,没有了那么多繁琐的配置项需要修改. 注意:本人是在虚拟机centos6.2系统下搭建的流媒体服务器,在win7主机上做测试. 另,文章最后有下载地址,可下载搭建过程中所有用到的包和其他文件. 废

[终极精简版][图解]Nginx搭建flv mp4流媒体服务器

[终极精简版][图解]Nginx搭建flv mp4流媒体服务器 卧槽,就是被新版的jwplayer坑了,用了博主的 startparam: "start",primary: "flash" 最终搞定了,特意注册一个账号顶一下!谢谢. 花了我接近3周,历经了重重问题,今日终于把流媒体服务器搞定,赶紧的写个博文以免忘记... 起初是跟着网上的一些教程来的,但是说的很不全面,一些东西也过时不用了(比如jwplayer老版本).我这次是用的最新版jwplayer6.8,在配

某表含有N个字段超精简模糊查询方法

我们在做多个字段模糊查询时,是不是觉得非常麻烦?比如我要模糊查询某表多个字段存在某数据时,如下 select * from table where a like '%key%' or b  like '%key%' or c like '%key%'.......... 上面的语句不但长,而且写起来好麻烦.我们是不是有更好的办法呢? 答案是肯定的.我们可以这样写: SELECT * FROM  table where CONCAT(a,b,c......) like '%key%' 这样不就显得

[LeetCode] Reverse Integer 翻转整数

Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return -321 click to show spoilers. Have you thought about this? Here are some good questions to ask before coding. Bonus points for you if you have already thought throu