跪求:开平方算法
由于本人用的tiny13空间有限,所以没有办法用一般的开方算法,不知道哪位大侠有比较小一点的开方算法,慢一点不要紧!谢谢 http://www.ouravr.com/bbs/bbs_content.jsp?bbs_sn=866280&bbs_page_no=1&search_mode=1&search_text=开方&bbs_id=9999 unsigned int insqrt(unsigned long a){
unsigned long i,c;
unsigned long b = 0;
for(i = 0x40000000; i != 0; i >>= 2)
{
c = i + b;
b >>= 1;
if(c <= a)
{
a -= c;
b += i;
}
}
return (unsigned int)b;
}
网上可以找到的16位的和32位的稍有不同 直接转成某个数的平方,如值太小则加大,反之减小.看行不 谢谢,各位!已搞定 本帖最后由 tarchen 于 2020-2-18 16:49 编辑
3楼的不错。谢谢! 挖了个12年前坟...... 害我又去知乎里看有人问的魔法数字:0x5f3759df,那些研究算法的人太牛了 厉害。专门搜索了一下tiny13是个什么东西。
页:
[1]