Java开发20个位运算技巧.ppt

上传人:max****ui 文档编号:6360229 上传时间:2020-02-23 格式:PPT 页数:25 大小:617.81KB
返回 下载 相关 举报
Java开发20个位运算技巧.ppt_第1页
第1页 / 共25页
Java开发20个位运算技巧.ppt_第2页
第2页 / 共25页
Java开发20个位运算技巧.ppt_第3页
第3页 / 共25页
点击查看更多>>
资源描述
20个位运算技巧 一提起位运算 人们往往想到它的高效性 无论是嵌入式编程还是优化系统的核心代码 适当的运用位运算总是一种迷人的手段 或者当您求职的时候 在代码中写入适当的位运算也会让您的程序增加一丝亮点 最初当我读 编程之美 求 1的数目 时 我才开始觉得位运算是如此之美 后来读到 Hacker sDelight 感慨到HenryS Warren把位运算运用的如此神出鬼没 很多程序都十分精妙 我觉得在一个普通的程序中大量运用这样的代码的人简直是疯了 但掌握简单的位运算技巧还是必要的 所以今天写这篇博文把我积累的一些位运算技巧分享给大家 这些技巧不会是如求 1的数目 的技巧 是最基本的一行位运算技巧 1 获得int型最大值 cpp viewplaincopyintgetMaxInt return 1 31 1 2147483647 由于优先级关系 括号不可省略 另一种写法 cpp viewplaincopyintgetMaxInt return 1 31 2147483647 另一种写法 cpp viewplaincopyintgetMaxInt 有些编译器不适用return 1 1 1 2147483647 C语言中不知道int占几个字节时候 java viewplaincopyintgetMaxInt return unsignedint 1 1 2147483647 2 获得int型最小值 cpp viewplaincopyintgetMinInt return1 31 2147483648 另一种写法 cpp viewplaincopyintgetMinInt 有些编译器不适用return1 1 2147483648 3 获得long类型的最大值C语言版 cpp viewplaincopylonggetMaxLong return unsignedlong 1 1 2147483647 JAVA版 java viewplaincopylonggetMaxLong return long 1 127 1 9223372036854775807 获得long最小值 和其他类型的最大值 最小值同理 4 乘以2运算 cpp viewplaincopyintmulTwo intn 计算n 2returnn 1 5 除以2运算 cpp viewplaincopyintdivTwo intn 负奇数的运算不可用returnn 1 除以2 6 乘以2的m次方 cpp viewplaincopyintmulTwoPower intn intm 计算n 2 m returnn m 7 除以2的m次方 cpp viewplaincopyintdivTwoPower intn intm 计算n 2 m returnn m 8 判断一个数的奇偶性 java viewplaincopybooleanisOddNumber intn return n 9 不用临时变量交换两个数 面试常考 C语言版 cpp viewplaincopyvoidswap int a int b a b a b 通用版 一些语言中得分开写 java viewplaincopya b b a a b 10 取绝对值 某些机器上 效率比n 0 n n高 cpp viewplaincopyintabs intn return n n 31 n 31 n 31取得n的符号 若n为正数 n 31等于0 若n为负数 n 31等于 1若n为正数n 0 0 数不变 若n为负数有n 1需要计算n和 1的补码 然后进行异或运算 结果n变号并且为n的绝对值减1 再减去 1就是绝对值 11 取两个数的最大值 某些机器上 效率比a b a b高 通用版 cpp viewplaincopyintmax inta intb returnb 如果a b a b 31为0 否则为 1 C语言版 cpp viewplaincopyintmax intx inty returnx x y 如果x yx y返回1 否则返回0 与0做与运算结果为0 与 1做与运算结果不变 12 取两个数的最小值 某些机器上 效率比a b b a高 通用版 cpp viewplaincopyintmin inta intb returna 如果a b a b 31为0 否则为 1 C语言版 cpp viewplaincopyintmin intx inty returny x y 如果x yx y返回1 否则返回0 与0做与运算结果为0 与 1做与运算结果不变 13 判断符号是否相同 java viewplaincopybooleanisSameSign intx inty 有0的情况例外return x y 0 true表示x和y有相同的符号 false表示x y有相反的符号 14 计算2的n次方 cpp viewplaincopyintgetFactorialofTwo intn n 0return2 n 1 2的n次方 15 判断一个数是不是2的幂 java viewplaincopybooleanisFactorialofTwo intn returnn 0 n 如果是2的幂 n一定是100 n 1就是1111 所以做与运算结果为0
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!