- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
位运算技巧总结
位运算应用口诀清零取反要用与,某位置一可用或(10=0,1|1=1、0|1=1)若要取反和交换,轻轻松松用异或 (与1异或相当于取反,与0异或相当于不变。1^1=0、0^1=1,1^0=1、0^0=0)移位运算要点 1 它们都是双目运算符,两个运算分量都是整形,结果也是整形。2 左移:右边空出的位上补0,左边的位将从字头挤掉,其值相当于乘2。3 右移:右边的位被挤掉。对于左边移出的空位,如果是正数则空位补0,若为负数,可能补0或补1,这取决于所用的计算机/os/系统。4 运算符,右边的位被挤掉,对于左边移出的空位一概补上0。位运算符的应用 (源操作数s 掩码mask)(1) 按位与-- 1 清零特定位 (mask中特定位置0,其它位为1,s=smask)2 取某数中指定位 (mask中特定位置1,其它位为0,s=smask)(2) 按位或-- |常用来将源操作数某些位置1,其它位不变。 (mask中特定位置1,其它位为0 s=s |mask)(3) 位异或-- ^1 使特定位的值取反 (mask中特定位置1,其它位为0 s=s^mask)2 不引入第三变量,交换两个变量的值 (设 a=a1,b=b1)目 标 操 作 操作后状态a=a1^b1 a=a^b a=a1^b1,b=b1b=a1^b1^b1 b=a^b a=a1^b1,b=a1a=b1^a1^a1 a=a^b a=b1,b=a1二进制补码运算公式:-x = ~x + 1 = ~(x-1)~x = -x-1-(~x) = x+1~(-x) = x-1x+y = x - ~y - 1 = (x |y)+(xy)x-y = x + ~y + 1 = (x |~y)-(~xy)x^y = (x |y)-(xy)x |y = (x~y)+yxy = (~x |y)-~xx==y: ~(x-y |y-x)x!=y: x-y |y-xx y: (x-y)^((x^y)((x-y)^x))x =y: (x |~y)((x^y) |~(y-x))x y: (~xy) |((~x |y)(x-y))//无符号x,y比较x =y: (~x |y)((x^y) |~(y-x))//无符号x,y比较应用举例(1) 判断int型变量a是奇数还是偶数 a1 = 0 偶数a1 = 1 奇数(2) 取int型变量a的第k位 (k=0,1,2……sizeof(int)),即ak1(3) 将int型变量a的第k位清0,即a=a~(1 k)(4) 将int型变量a的第k位置1, 即a=a |(1 k)(5) int型变量循环左移k次,即a=a k |a16-k (设sizeof(int)=16)(6) int型变量a循环右移k次,即a=ak |a 16-k (设sizeof(int)=16)(7)整数的平均值对于两个整数x,y,如果用 (x+y)/2 求平均值,会产生溢出,因为 x+y 可能会大于INT_MAX,但是我们知道它们的平均值是肯定不会溢出的,我们用如下算法:int average(int x, int y) //返回X,Y 的平均值{ return (xy)+((x^y)1);}(8)判断一个整数是不是2的幂,对于一个数 x = 0,判断他是不是2的幂boolean power2(int x){return ((x(x-1))==0)(x!=0);}(9)不用temp交换两个整数void swap(int x , int y){x ^= y;y ^= x;x ^= y;}(10)计算绝对值int abs( int x ){int y ;y = x 31 ;return (x^y)-y ; //or: (x+y)^y}(11)取模运算转化成位运算 (在不产生溢出的情况下)a % (2^n) 等价于 a (2^n - 1)(12)乘法运算转化成位运算 (在不产生溢出的情况下)a * (2^n) 等价于 a n(13)除法运算转化成位运算 (在不产生溢出的情况下)a / (2^n) 等价于 a n例: 12/8 == 123(14) a % 2 等价于 a 1 (15) if (x == a) x= b; else x= a; 等价于 x= a ^ b ^ x;(16) x 的 相反数 表示为 (~x+1)实例功能 | 示例 | 位运算----------------------+---------------------------+--------------------去掉最后一位 | (101101-10110) | x 1在最后加一个0 | (101101-1011010) | x 1在最后加一个1 | (101101-1011011) | x 1+1把最
您可能关注的文档
- 从自欺欺人到自娱自乐.ppt
- 仓管员的自我介绍(多篇).doc
- 他终于张开了嘴.doc
- 他花了年时间,在自家后院种出了一座教堂.pdf
- 付懋嬛.ppt
- 以种植业为主的农业的域类型lu.ppt
- 仪表维修个人工作总结(多篇).doc
- 任务五放大电路课件7.ppt
- 任重而道远 —论大学之使命.PDF
- 企业人力资源管理的挑战与出路孙健敏博士中国人民大学劳动3.ppt
- 2025年海军职工大学思想道德修养与法律基础期末考试模拟题及答案1套.docx
- 2025年浙江长征职业技术学院思想道德修养与法律基础期末考试模拟题必考题.docx
- 2025年浙江邮电职业技术学院思想道德修养与法律基础期末考试模拟题新版.docx
- 2025年浙江音乐学院马克思主义基本原理概论期末考试模拟题必考题.docx
- 2025年浙江金融职业学院思想道德修养与法律基础期末考试模拟题附答案.docx
- 2025年浙江越秀外国语学院马克思主义基本原理概论期末考试模拟题附答案.docx
- 2025年海南外国语职业学院思想道德修养与法律基础期末考试模拟题必考题.docx
- 2025年浙江越秀外国语学院思想道德修养与法律基础期末考试模拟题及答案1套.docx
- 2025年浙江越秀外国语学院思想道德修养与法律基础期末考试模拟题附答案.docx
- 2025年浙江越秀外国语学院思想道德修养与法律基础期末考试模拟题附答案.docx
原创力文档


文档评论(0)