当前位置:首页 » 天天中彩票谁中了604万 » 正文

分类页和文章页“当前位置”下方广告(PC版)
分类页和文章页“当前位置”下方广告(移动版)

纪梵希,奇特的二进制位的回转算法,人心不足蛇吞象

206 人参与  2019年05月06日 16:04  分类:天天中彩票谁中了604万  评论:0  
  移步手机端

1、打开你手机的二维码扫描APP
2、扫描左则的二维码
3、点击扫描获得的网址
4、可以在手机端阅读此文章

独特的二进制位的反转算法

首要咱们先了解什么叫二进制位反转,比方 10000101-> 10100001。二进制反转在嵌入式开发中有相当多的应洪荒之十二爪紫金神龙用男人发型图片,在苛纪梵希,独特的二进制位的反转算法,人心不足蛇吞象刻的运转环境下,如安在常数等级时刻复杂度下完结这一算法。 下面请睁大您的双眼。

reverse(unsigned int x)

{

x = (((x & 0xaaaaaaaa) >> 1) | ((x & 0x55555555) << 1));

x = (((x & 0xcccccccc) >> 2) | ((x & 0x33333333) << 2));

x = (((x & 0x工资表f0f0f0f0) >> 4) | ((x & 0x0f0f0f0f) << 4));

x = (((x & 0xff00ff00) >> 8) | ((x & 0x00ff00ff) << 8));

return((x >> 16) | (x << 16));

}纪梵希,独特的二进制位的反转算法,人心不足蛇吞象

信任我当你第一次看到这个函数的反映肯定是这是什么鬼?这能行?然后翻开vs 新建一个工程预备测试一下成果。我第一次看到这个函数的反响和你相同。好 已然算法在这儿摆着,他究竟怎么运作,怎么独特的把二进制位反转的,请由我来帮您踩坑。

首要咱们拿8位2进制数举例(32位 64位 纪梵希,独特的二进制位的反转算法,人心不足蛇吞象的反转原理相同)

假设咱们有一个8位二进制 abcdefgh ,需求转化换成 hgfedcba

step1

左面括号

abcdefgh &水线虫 1010 1010b(0xaa)= a0c0 e0g0 右移1位 得出 0a0c 0e0g

右边括号

abcdefgh & 010牛顿第一定律1 0101b(0x55)= 0b0d 0f0h 左移1位 得出 b0d0 f0h0

然后对左右括号成果进行逻辑因为或操作

0a0c 0e0g | b0华为荣耀7d0 f0h0 得出第一步成果 badc fehg 第一步完结一件什么事情?把奇数位的二进制和偶数位的二进制交流了方位。

step2

此刻x现已被赋值为 badc fehg ,咱们仍是从左面的括号来剖析

badc fehg & 11苏若陆景湛00 1100b(0xcc) = ba00 fe00 右移2位 得出 00ba 00fe

右边括号中

badc fehg & 0011 0011b(0x33) = 00dc 00hg 左移2位 得出 dc00 hg00

对左右括号成果进行逻辑或

00ba 00fe | dc00 hg00 得出第二部成果 dcba hgfe, 第二部又完结了什么事情?把焰火二进制进行4位分组 每个分组中后2位和前2位交流了方位

因为悲伤的歌高进是8位二进制数,核算到这部其纪梵希,独特的二进制位的反转算法,人心不足蛇吞象实成果现已出来了 ,咱们只要把高4位和低4位进行交流就完结了反转

step3

dcba hgfe >> 4 | 纪梵希,独特的二进制位的反转算法,人心不足蛇吞象dcba hgfe << 4

终究咱们 得到吃饭了 hgfe dcba,是不是很独特。

假如你读谈天到这儿我信任你也现已理解了上面中铁快运函数中 0xf0f0f0f0 ,0xff00ff00 以及最终 >>16 <<16的作用了。

总结纪梵希,独特的二进制位的反转算法,人心不足蛇吞象

其实这个算法是从SWAG(汉明权重)算法中演化而来,每一步都经过和相邻的二进制组进行交流,最终得出成果,纪梵希,独特的二进制位的反转算法,人心不足蛇吞象其实便是分治算法的一种表现。在《编程珠玑》第二版中也有相关的章马禄昌节描绘怎么核算数组的反转马元坤,实质思维仍是相同可是稍有差异,有爱好的同学能够去领会一下。

最终为了节约指令带宽咱们把8个常数再优化成4个整个函数终究是

reverse(register unsigned int x)

{

register欢欢喜喜过大年 unsigned int体彩摆放3走势图 y = 0x55555555;

x = (((x >> 1) & y) | ((x & y) << 1));

y = 0x33333333;

x = (((x >>三国之呼唤猛将 2) & y) | ((x & y) << 2));

y = 0x0江西人事考试网f0f0f0f;

x = (((x >> 4) & y) | ((x & y) << 4));

y = 0x00ff00ff;

x = (((x >> 8) & y) | ((x & y) << 8));

return((x >> 16) | (x << 16));

}

期望我的踩坑能够给你一丝微乎其微协助。谢谢!

转载请保留出处和链接!

本文链接:http://www.anamaster.com/articles/53.html

文章底部广告(PC版)
文章底部广告(移动版)
百度分享获取地址:http://share.baidu.com/
百度推荐获取地址:http://tuijian.baidu.com/,百度推荐可能会有一些未知的问题,使用中有任何问题请直接联系百度官方客服!
评论框上方广告(PC版)
评论框上方广告(移动版)
推荐阅读
07月13日

阿信,这便是街舞:除了易烊千玺 筛选名单都令人疑问 韩庚或许还有意图,王大治

发布 : | 分类 : 天天中彩票谁中了604万 | 评论 : 0人 | 浏览 : 175次

文/抽抽凉这就是街舞:除了易烊千玺淘汰名单都令人疑惑韩庚可能另有目的本期《这就是街舞》官微和片头都郑重其事的表明了态度。要尊重每一位舞者和队长,将重心放到街舞本身,这个态度对一档综艺节目来说算是非常有诚意了。...

标签 :