Java开发20个位运算技巧.ppt_第1页
Java开发20个位运算技巧.ppt_第2页
Java开发20个位运算技巧.ppt_第3页
Java开发20个位运算技巧.ppt_第4页
Java开发20个位运算技巧.ppt_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

20个位运算技巧,一提起位运算,人们往往想到它的高效性,无论是嵌入式编程还是优化系统的核心代码,适当的运用位运算总是一种迷人的手段,或者当您求职的时候,在代码中写入适当的位运算也会让您的程序增加一丝亮点,最初当我读编程之美求“1的数目”时,我才开始觉得位运算是如此之美,后来读到HackersDelight,感慨到HenryS.Warren把位运算运用的如此神出鬼没,很多程序都十分精妙,我觉得在一个普通的程序中大量运用这样的代码的人简直是疯了!但掌握简单的位运算技巧还是必要的,所以今天写这篇博文把我积累的一些位运算技巧分享给大家,这些技巧不会是如求“1的数目”的技巧,是最基本的一行位运算技巧!,1.获得int型最大值,cppviewplaincopyintgetMaxInt()return(131)-1;/2147483647,由于优先级关系,括号不可省略,另一种写法cppviewplaincopyintgetMaxInt()return(131);/2147483647,另一种写法cppviewplaincopyintgetMaxInt()/有些编译器不适用return(11;/2147483647,2.获得int型最小值,cppviewplaincopyintgetMinInt()return131;/-2147483648,另一种写法cppviewplaincopyintgetMinInt()/有些编译器不适用return11;/2147483647,JAVA版javaviewplaincopylonggetMaxLong()return(long)1127)-1;/9223372036854775807获得long最小值,和其他类型的最大值,最小值同理.,4.乘以2运算cppviewplaincopyintmulTwo(intn)/计算n*2returnn1;/除以2,6.乘以2的m次方cppviewplaincopyintmulTwoPower(intn,intm)/计算n*(2m)returnnm;,8.判断一个数的奇偶性javaviewplaincopybooleanisOddNumber(intn)return(n,9.不用临时变量交换两个数(面试常考)C语言版cppviewplaincopyvoidswap(int*a,int*b)(*a)=(*b)=(*a)=(*b);,通用版(一些语言中得分开写)javaviewplaincopya=b;b=a;a=b;,10.取绝对值(某些机器上,效率比n0?n:-n高)cppviewplaincopyintabs(intn)return(n(n31)-(n31);/*n31取得n的符号,若n为正数,n31等于0,若n为负数,n31等于-1若n为正数n0=0,数不变,若n为负数有n-1需要计算n和-1的补码,然后进行异或运算,结果n变号并且为n的绝对值减1,再减去-1就是绝对值*/,11.取两个数的最大值(某些机器上,效率比ab?a:b高),通用版cppviewplaincopyintmax(inta,intb)returnb/*如果a=b,(a-b)31为0,否则为-1*/,C语言版cppviewplaincopyintmax(intx,inty)returnx(xy)/*如果x=b,(a-b)31为0,否则为-1*/,C语言版cppviewplaincopyintmin(int

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论