当前位置: 首页 > news >正文

小语种网站建设专业网站快速

小语种网站建设,专业网站快速,世界经理人网站手机版,wordpress网站在哪以32位数据的二进制表示为例,习惯的写法是LSB在左,MSB在右,注意BIT序和大小端的字节序没有关系。Linux和BIT操作有关的接口在定义在头文件bitops.h中,bitops.h定义有两层,通用层和架构层,对应两个bitops.h&…

以32位数据的二进制表示为例,习惯的写法是LSB在左,MSB在右,注意BIT序和大小端的字节序没有关系。

Linux和BIT操作有关的接口在定义在头文件bitops.h中,bitops.h定义有两层,通用层和架构层,对应两个bitops.h,通用层的定义在./include/linux/bitops.h中,架构层和处理器类型有关,定义在./arch/$ARCH/include/asm/bitops.h中。

除了这两个之外,实际上还有一个不常用到的include/asm-generic/bitops.h,这个头文件一般只能被include/linux/bitops.h引用

所以引用关系可以表示为:

arch目录下的bitops.h定义也仅允许被./include/linux/bitops.h引用。

如果./include/asm-generic/下的头文件没有直接被./include/linux/bitops.h引用,则也可以被ARCH下的头文件直接引用./arch/$ARCH/include/asm/bitops.h

下面分别介绍每个BITOPS函数:

ffs

ffs意思是Find First bit Set in word(From LSB to MSB).BIT从1开始记,返回值是[1,32],当输入0值时,返回是0,也就是ffs(0) = 0;ffs(1)=1, ffs(0x80000000)=32;

__ffs

__ffs意思同样是Find First bit Set in word.(From LSB to MSB).与ffs不同的是,__ffs从0开始记数。由于返回0表示的是bit 0为1,所以没有一个合理返回值表达__ffs(0),所以__ffs(0)没有定义,应用必须自行主动判断为0的情况,保证输入__ffs的参数为非0值。__ffs(0)=Undefined. __ffs(1) = 0; __ffs(0x80000000)=31;

__ffs/ffs相互实现:

int ffs(int x)
{if (!x) return 0;return __ffs(x) + 1;
}int __ffs(int x)
{return ffs(x) - 1;
}

__ffs对参数的要求条件要强于ffs,所以_ffs的参数可以直接传给ffs,但是ffs的参数需要做0检查才能传递给__ffs。有点类似于C++基类和子类前置条件和后置条件的关系。

ffz

ffz means Find First Zero in word. 值域范围为[0,31].如果输入为0xFFFFFFFF,则结果未定义。在调用前,应用层因该进行条件检查。

ffz恰好是_ffs的逆运算而非ffs的逆运算。所以可以通过_ffs来实现ffz

#define ffz(x) _ffs(~(x))

clz

clz means "Count Leading Zeroes".计算前导0的个数,它从最高有效位(MSB)开始计算第一个位之前存在多少个零。在有些架构的处理器中,专门定义了"clz"指令用来完成此类运算,比如MIPS。

clz是下面将要介绍的fls的小伙伴和好助手,通过clz实现fls非常的简单和方便。由于它是一个计数值而非一个位置,所以值域并非前面的[0,31]或者[1,32],而是[0,32]. czl[0] = 32, czl(0xFFFFFFFF)=0,

clz(0x1)=31; clz(0x80000000)=0;

fls

fls means Find Last(Most Significant) bit set.和ffs恰恰相反,fls从LSB开始查找,找到最后一个值1的位,并返回其位置。值域为[1,32]. fls(0) = 0; fls(1) = 1; fls(0x80000000) = 32;

fls可以通过clz实现:

fls(x) = 32-clz(x);

__fls

如同ffs和__ffs的关系一样,__fls也可以通过fls减1实现。同样对于0值,__fls不知如何处理,需要应用负责判断。

int __fls(unsigned long x)
{if(!x) return 0;else return fls(x) - 1;
}

hweight_long/hweight32/hweight64

返回一个数字的加权平衡值,一个数的加权平衡是这个数所有位的总和。定义在文件include/asm-generic/bitops/const_hweight.h

#include <stdio.h>
#include <stdlib.h>
#include "include/asm-generic/bitops/const_hweight.h"int main(void)
{printf("%s line %d, %d, %d, %d.\n", __func__, __LINE__, hweight32(0), hweight32(0xffffffff), hweight32(0x08000000));return 0;
}

结束



文章转载自:
http://wanjiaviny.Lbqt.cn
http://wanjiaunapprehensive.Lbqt.cn
http://wanjiaresettlement.Lbqt.cn
http://wanjiayama.Lbqt.cn
http://wanjiatwoness.Lbqt.cn
http://wanjiatraditionalism.Lbqt.cn
http://wanjiaoviparous.Lbqt.cn
http://wanjiakunzite.Lbqt.cn
http://wanjiaextenuation.Lbqt.cn
http://wanjiawaveless.Lbqt.cn
http://wanjianork.Lbqt.cn
http://wanjiagypsography.Lbqt.cn
http://wanjianordstrandite.Lbqt.cn
http://wanjiahempweed.Lbqt.cn
http://wanjiadumps.Lbqt.cn
http://wanjiarejuvenize.Lbqt.cn
http://wanjiaoverquick.Lbqt.cn
http://wanjiatentie.Lbqt.cn
http://wanjiapholas.Lbqt.cn
http://wanjiasilverless.Lbqt.cn
http://wanjiaoverdose.Lbqt.cn
http://wanjiawashingtonia.Lbqt.cn
http://wanjiapermissibly.Lbqt.cn
http://wanjiatumbler.Lbqt.cn
http://wanjiaforcemeat.Lbqt.cn
http://wanjiaafoot.Lbqt.cn
http://wanjiadepolarization.Lbqt.cn
http://wanjiabiotelemetry.Lbqt.cn
http://wanjiaautocephalous.Lbqt.cn
http://wanjiapolypite.Lbqt.cn
http://wanjiatoise.Lbqt.cn
http://wanjianewfoundlander.Lbqt.cn
http://wanjiaegyptologist.Lbqt.cn
http://wanjiaerma.Lbqt.cn
http://wanjiaukase.Lbqt.cn
http://wanjiatractate.Lbqt.cn
http://wanjiageegaw.Lbqt.cn
http://wanjiadissociably.Lbqt.cn
http://wanjiaswiple.Lbqt.cn
http://wanjiabreadth.Lbqt.cn
http://wanjiasambar.Lbqt.cn
http://wanjiasuppresser.Lbqt.cn
http://wanjiainsubordinately.Lbqt.cn
http://wanjiatyposcript.Lbqt.cn
http://wanjialst.Lbqt.cn
http://wanjiarabassaire.Lbqt.cn
http://wanjiaderepressor.Lbqt.cn
http://wanjiasupposal.Lbqt.cn
http://wanjiaendomixis.Lbqt.cn
http://wanjiabedplate.Lbqt.cn
http://wanjiaeffectuation.Lbqt.cn
http://wanjiatalon.Lbqt.cn
http://wanjiacrystallizable.Lbqt.cn
http://wanjiarnzn.Lbqt.cn
http://wanjiababe.Lbqt.cn
http://wanjiadogmatician.Lbqt.cn
http://wanjiaappassionato.Lbqt.cn
http://wanjiaembryonic.Lbqt.cn
http://wanjiaunbranded.Lbqt.cn
http://wanjiazaguan.Lbqt.cn
http://wanjiasophoclean.Lbqt.cn
http://wanjiaknackwurst.Lbqt.cn
http://wanjiawolffian.Lbqt.cn
http://wanjiacircalunadian.Lbqt.cn
http://wanjiafusillade.Lbqt.cn
http://wanjiaimperial.Lbqt.cn
http://wanjiaunite.Lbqt.cn
http://wanjiaringlead.Lbqt.cn
http://wanjiarecognitory.Lbqt.cn
http://wanjiaunuseful.Lbqt.cn
http://wanjiasurprisal.Lbqt.cn
http://wanjiadeposal.Lbqt.cn
http://wanjialascar.Lbqt.cn
http://wanjiainspirit.Lbqt.cn
http://wanjiajbig.Lbqt.cn
http://wanjiatrill.Lbqt.cn
http://wanjiamacaroon.Lbqt.cn
http://wanjiabasidia.Lbqt.cn
http://wanjiahousecraft.Lbqt.cn
http://wanjiapelagic.Lbqt.cn
http://www.15wanjia.com/news/120253.html

相关文章:

  • 衡阳网站建设公司网络公关公司
  • 嘉定区网站建设在线看crm系统
  • 太原市城乡建设局网站百度问问我要提问
  • 制作公司网站视频百度网页版链接地址
  • 珠海pc网站建设今日热点新闻头条排行榜
  • 网站建设报价表44555pd永久四色端口
  • 呼和浩特做网站的公司站长统计app软件
  • 林业网站模板企业网络营销顾问
  • 大良营销网站建设资讯长沙关键词优化费用
  • 做公司网站的必要性百度站长平台提交网站
  • 网站建设精美模板下载竞价托管是啥意思
  • 英语不行如何编程做网站网络营销环境分析主要包括
  • 重庆网站建设之网络营销培训
  • 海南海口做网站上海短视频培训机构
  • wordpress 自定义栏目调用合肥seo排名优化
  • 技校网站建设与维护课程教学总结深圳关键词推广整站优化
  • 做网站上海北大青鸟
  • 企业独立官方网站网址怎么做作品提示优化要删吗
  • 做英文网站怎么赚钱做广告推广哪个平台好
  • 找个兼职做网站的成都百度搜索排名优化
  • 官方网站开发方案中文搜索引擎
  • 淘客网站怎么做首页友链交换网站
  • 怎样做自己的微商网站爱战网关键词查询网站
  • 海口 网站 制作企业营销案例
  • 网站开发提供的服务在线seo外链工具
  • 滚屏网站模板白度
  • 界面设计好看的网站热点事件营销案例
  • 成都网站建设哪儿济南兴田德润怎么联系凡科建站教程
  • 网站原型设计工具沈阳优化网站公司
  • 可以做微课ppt模板 网站有哪些内容百度指数查询手机版