位运算
文章平均质量分 79
菜鸟闯天下zxl
这个作者很懒,什么都没留下…
展开
-
不用额外变量交换两个整数的值
不用额外变量交换两个整数的值 【题目】 如何不用任何额外变量交换两个整数的值? 【解答】 使用位运算的异或运算,或者使用加法运算 a异或b的结果是c,那么c就是a整数位信息和b整数位信息的所有不同信息。 a = a^b,当前a=c;b = a^b相当于b = c^b 当前b=a;a = a^b 相当于a = c^a 当前a=b,完成交换; 如果是加法交换的话,假设a +原创 2015-10-04 23:01:59 · 3168 阅读 · 0 评论 -
不用任何比较判断找出两个数中较大的数
不用任何比较判断找出两个数中较大的数 【题目】 给定两个32位整数a和b,返回a和b中较大的。 【要求】 不用任何比较判断。 【解答】 这里有两种方法进行解决,两种方法原理都一样的,只是第二种是第一种的优化。 sign函数的功能是返回整数n的符号,正数和0返回1,负数返回0.flip函数的功能是做n的异或运算,n是1返回0,n是0返回1。 方法一: 我们不能直原创 2015-10-07 21:00:51 · 3005 阅读 · 0 评论