整数平方根 (sqrti)
无浮点运算的整数平方根计算,适用于无 FPU 的嵌入式平台。
算法
基于逐位逼近法(digit-by-digit),从最高有效位开始逐位确定平方根的每一位。类似长除法求平方根,所有运算为整数加减和移位,无浮点依赖。
API
unsigned long sqrti(unsigned long x);
计算 x 的整数平方根,返回 ⌊√x⌋。
x = 0返回 0x = 1返回 1x = 4返回 2x = 5返回 2(向下取整)
使用示例
计算距离(勾股定理)
unsigned long dx = x2 - x1;
unsigned long dy = y2 - y1;
unsigned long dist = sqrti(dx * dx + dy * dy);
图形缩放
unsigned long ratio = sqrti(src_size * src_size / dst_size);