由于我没有写注释的习惯,所以这次的学习报告截图中都没有加注释。这次的学习然我了解了位运算和二分查找,觉得收获比较大。
定义一个变量arr,通过&运算来判断a,b两数相加是否有进位(二进制满2进1)
再将arr值赋值给a,由while语句做判断是否继续循环
2.递归乘法
乘法可以看成是b个a相加得来的。通过运用三目运算作为输出的条件,利用递归调用来计算乘法
3.两数相除
这里我尽力了!!!
5.Sqrt(x)
使用的方法是二分查找法,一个数x的平方根满足 k^2<=x<(k+1)^2。那我们就可以利用二分查找法锁定范围。我们定义l是最左端的数,r是最右端的数,要满足公式所以我们要假定一个k,k取mid=l+(r+1)>>1(或者mid=l+(r+1)/2)。然后判断这个数书否等于或者大于小于他的开根值。小于就将mid向左移动+1,大于就使l向有移动-1。使得最终l=r(mid)这样的结果是最为准确的值。
来自 雪菜大佬
6.最大数值
三目运算来比较大小。