求平均数的方法以及数的移位

来源:互联网 发布:linux中cd的用法 编辑:程序博客网 时间:2024/06/04 19:43

求平均数

1.int mid = left + (right-left)/2;

2.int mid = (left&right)/*相同位不变*/ + ((left^right)/2)/*不同位相加除二*/;

如果我们写成 int mid = (left+right)/2;容易越界,产生错误;这就是我们应该写的求平均数的方法,注意不要写成第三种,容易出错。

移位

移位分为逻辑移位和算数移位,而逻辑移位又分为逻辑左移和逻辑右移;算数移位又分为算数右移和算数左移;

右移符号为>>

逻辑右移后,二进制数的前面补0,不用考虑符号位;

算数右移后,考虑符号位,用原来的符号位填充;

左移符号为<<

不论是逻辑左移还是算数左移都在移位后的二进制数后补0;

0 0