整数二分:
while(l<r)
{
    int m=(l+r)/2;//右边区间
    if(ture)r=m;
    else l=m+1;
}
//当r=l时,即是在ture和fasle的边界点上
while(l<r)
{
   int m=(l+r+1)/2;//左边区间,+1是为了防止当l=r-1时,如果为真l还是等于r-1,这样就会陷入死循环;
   if(ture)l=m;
   else r=m-1;
}
浮点数二分:
浮点数二分则相对简单,因为它不需要考虑边界问题。但值得注意的是代码中的精度要比题目所要求的精度小个10^-2;
while(l<r)
{
    int m=(l+r)/2;
    if(ture)r=m;
    else l=m;
}