- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算2进制数中1的个数
第二章 基础2.1 操作最右侧位a.最右侧的1-0(0101 1000-0101 0000) x(x-1),可用来判断无符号整数是否为2的幂;x(x+1)可用来检测无符号数是否为pow(2,n)-1的形式b.析出最右侧的1位(0101 1000-0000 1000) x(-x);析出最右侧的0位(0101 0111-0000 1000) ~x(x+1)c.识别后缀0的掩码(0101 1000-0000 0111) ~x(x-1) or ~(x|(-x)) or (x-x)-1d.识别最右侧1位和后缀0的掩码(0101 1000-0000 1111) x^(x-1) (^表示异或)e.向右传播最右侧的1位(0101 1000-0101 1111) x|(x-1)f.将最右侧连续的1位串修改成0位串(0101 1000-0100 0000) ((x|(x-1))+1) x,可用来检查一个非负整数是否具有pow(2,j)-pow(2,k)的形式(j=k=0)g.将上述具有对偶性公式的1和0, (x+1)和(x-1), ~(x+1)和(-x), 和|相替换,而x与~x不变,则可以得出新的公式h.寻找一个和给定非负整数有相同数目的1位的下一个大数(将集合表示成数,元素为数位):??????????????????? s - x(-x)?????????????? x=01111 0000, s=00001 0000??????????????????? r - s+x?????????????????? r=10000 0000??????????????????? t - ((x^r)2)/s?????? x^r=11111 0000, t=00000 0111??????????????????? y - r|t???????????????? y=10000 0111寻找一个和给定非负整数有相同数目的1位的下一个大数: x(x-1) + 1 2.4 绝对值函数先计算y - x31,然后使用 abs: (x^y)-y or (x+y)^y or x-(x1 y)????????????????????????????? nabs: y-(x^y) or (y-x)^y or (x1 y)-x2.7 符号函数sign(x) = -1(x0), 0(x=0), 1(x0), 使用比较谓词指令(x0)-(x0) or (x=0)-(x=0)(可推广到x与y比较), 或者(x31)|(-x31)2.9 符号传递ISIGN(x,y) = abs(x)(y=0), -abs(x) (y0)?????????????? = (abs(x)^t)-t?????? (t=y31)?????????????? = (abs(x)+t)^t2.14 循环移位(x为无符号整数)左循环移位n个位:y=(xn)|(x(32-n))右循环移位n个位:y=(xn)|(x(32-n))摘自rotl.c,向左移位unsigned __cdecl _rotl (????? unsigned val,????? int shift????? ){????? shift = 0x1f;????? val = (val(0x20 - shift)) | (val shift);????? return val;}unsigned __int64 __cdecl _rotl64 (????? unsigned __int64 val,????? int shift????? ){????? shift = 0x3f;????? val = (val(0x40 - shift)) | (val shift);????? return val;}2.19 交换寄存器x = x oper y, y = y oper x, x = x oper y; oper可为+、-、异或和异或的补(equiv;)a.交换寄存器的相应字段:给定x和y以及掩码m,当第i为的掩码m(i)=1时,交换x和y的第i位内容,否则不变???? 第一种方法:x = x^y; y = y^(xm); x = x^y??????? 第二种方法:tmp = (x~m)|(ym); y = (y~m)|(xm); x = tmp???? 第三种方法:x = xequiv;y; y = yequiv;(x|m); y = xequiv;y???? 第四种方法:tmp = (x^y)m; x = x^t; y = y^tb.同一寄存器的两个字段交换(x为非负整数)x: |--------------
您可能关注的文档
最近下载
- 餐饮连锁新店选址评估表.xlsx VIP
- 第节特种陶瓷粉体制备方法特种陶瓷粉体制备方法.PDF VIP
- 幼儿园大班数学《10以内的加减法》PPT课件.pptx VIP
- 【课件】免疫与免疫规划+第二课时+免疫的功能与免疫规划课件人教版生物八年级上册.pptx VIP
- GBT50417-2017 煤矿井下供配电设计规范.docx VIP
- 2024-2025学年酒泉市金塔县重点中学小升初数学入学考试卷含解析.doc VIP
- 飞机维护模拟训练系统.doc VIP
- DBJ51/168-2021四川省住宅设计标准.docx VIP
- [泰州]江苏泰州泰兴现代农业产业园区招聘员额制工作人员10人笔试历年典型考点(频考版试卷)附带答案详.docx VIP
- DB61_T 5079-2023 城市轨道交通工程沿线土遗址振动控制与监测标准.docx
文档评论(0)