8位定点数开方程序(贴下来以后研究)

int Sqrt8(int a)
{
int i,c;
int b = 0;
if(a<=0x1000)
{
a<<=8;
for(i = 0x40000000; i !=0; i >>= 2)
{
c = i + b;
b >>= 1;
if(c <= a)
{
a -= c;
b += i;
}
}
return b;
}else
{
for(i = 0x40000000; i > 0x10; i >>= 2)
{
c = i + b;
b >>= 1;
if(c <= a)
{
a -= c;
b += i;
}
}
b<<=8;
for(i=0x1000;i!=0;i>>=2)
{
c = (i + b)>>8;
b >>= 1;
if(c <= a)
{
a -= c;
b += i;
}
}
return b;
}
}

posted on 2012-08-31 22:50  百万军中  阅读(532)  评论(0编辑  收藏  举报