版权声明:本文为博主原创文章未经博主允许不得转载。 /qq/article/details/
码文不易如果帮助到您,希望您可以下载一个压缩包与您无害,与我有益谢谢
??欢迎大家阅读我的博客如果有错误请指正,有问题请提问我会尽我全力改正错误回答问题。在次谢谢大家
??肯定有童鞋说,a+b不就等于a+b么。还能怎么算?那便来看一看我新学到的方法吧!
码文不易,如果帮助到您希望您可以下载一个压缩包,与您无害与我有益谢谢
给出两个整数a和b, 求他们的和, 但不能使用 + 等数学运算符。
a和b都是 32位 整数么
我可以使用位运算符么?
码文不易如果帮助到您,唏望您可以下载一个压缩包与您无害,与我有益谢谢
如果两个相应的二进制位都为1则该位的结果值为1,否则為0 |
两个相应的二进制位中只要有一个为1该位的结果值为1 |
~是一元运算符,用来对一个二进制数按位取反即将0变1,将1变0 |
若参加运算的两个②进制位值相同则为0否则为1 |
用来将一个数的各二进制位全部左移N位,右补0 |
将一个数的各二进制位右移N位移到右端的低位被舍弃,对于無符号数高位补0 |
??我的第一想法当然是直接return a+b;嘿嘿;然而,我上网一搜大神是真不少。
一位一位进行比较分类讨論。
0 | 0 | 0 | 0 |
0 | 0 | ||
0 | 0 | ||
0 | 0 | ||
0 | 0 | ||
0 | 0 | ||
0 | 0 | 0 | 0 |
从a取最后一位x从b取最后一位y
循环这些操作,记录每次的c2 就是a+b的结果
码文不易,如果帮助到您希望您可以下载一个压缩包,与您无害与我有益谢谢