MCU怎么开根号运算
时间: 2024-06-14 07:04:55 浏览: 92
用MCU组成的运算器实验电路multisim源文件(含汇编代码)
5星 · 资源好评率100%
MCU平台上可以使用逼近法来实现开根号运算。以下是一个典型的逼近法实现的快速平方根函数,只用了整数乘法就可以做到32位范围内的整数平方根计算,并且计算中边界值始终按照二分法定位可以显著缩短查找逼近时间,算法复杂度近似于Log2(N)。
```c
unsigned int sqrt(unsigned int x) {
unsigned int res = 0;
unsigned int bit = 1 << 30; // 最高位的平方根
while (bit > x) {
bit >>= 2; // 每次迭代右移两位
}
while (bit != 0) {
if (x >= res + bit) {
x -= res + bit;
res = (res >> 1) + bit;
} else {
res >>= 1;
}
bit >>= 2;
}
return res;
}
```***说明当前bit位可以为1,将res加上bit,并将x减去res加上bit;否则,将res右移一位。最后返回res即为开根号的结果。
阅读全文