开发者社区> morixinguan> 正文

C语言之linux内核实现平方根计算算法

简介:
+关注继续查看

关于平方根的计算,在linux内核中也有实现,就像math.h数学库里的sqrt这个函数一样。

      平方根的公式定义:

如果一个非负数x平方等于a,即
  
  
,那么这个非负数x叫做a算术平方根a的算术平方根记为
  
,读作“根号a”,a叫做被开方数(radicand)。求一个非负数a的平方根的运算叫做开平方。结论:被开方数越大,对应的算术平方根也越大(对所有正数都成立)。
一个正数如果有平方根,那么必定有两个,它们互为相反数。显然,如果我们知道了这两个平方根的一个,那么就可以及时的根据相反数的概念得到它的另一个平方根。 
哈哈,小学生都懂,不解释不解释,直接来看代码:大笑
一样的,从内核里把代码取出来:
#include <stdio.h>
#ifdef CONFIG_64BIT
#define BITS_PER_LONG 64
#else
#define BITS_PER_LONG 32
#endif
/**
 * int_sqrt - rough approximation to sqrt
 * @x: integer of which to calculate the sqrt
 *
 * A very rough approximation to the sqrt() function.
 */
unsigned long int_sqrt(unsigned long x)
{
	unsigned long op, res, one;
	op = x;
	res = 0;
	one = 1UL << (BITS_PER_LONG - 2);
	while (one > op)
		one >>= 2;

	while (one != 0) {
		if (op >= res + one) {
			op = op - (res + one);
			res = res +  2 * one;
		}
		res /= 2;
		one /= 4;
	}
	return res;
}

int main(void)
{
	printf("%d\n",int_sqrt(16))	;
	return 0 ;
}
运行结果:



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
python与算法:两种计算平方根的算法的开销
python与算法:两种计算平方根的算法的开销
22 0
算法:试证明求平方根的牛顿迭代法一定收敛
算法:试证明求平方根的牛顿迭代法一定收敛
22 0
LeetCode 未知数的平方根使用JavaScript解题|前端学算法
LeetCode 未知数的平方根使用JavaScript解题|前端学算法
22 0
java学习第四天笔记-循环高级和数组-分支结构90-优化一下平方根算法
java学习第四天笔记-循环高级和数组-分支结构90-优化一下平方根算法
16 0
【牛客刷题-算法】NC32 求平方根 (又是辛苦debug的一天)
【牛客刷题-算法】NC32 求平方根 (又是辛苦debug的一天)
39 0
【算法练习】迭代法求平方根
【算法练习】迭代法求平方根
61 0
leetcode算法69.x 的平方根
本文讲解如何用leetcode算法求69.x 的平方根。
66 0
【小Y学算法】⚡️每日LeetCode打卡⚡️——21.x 的平方根
📢前言 🌲原题样例 🌻C#方法:二分查找 🌻Java 方法一:二分法 🌻Java 方法二:牛顿迭代 💬总结 🚀往期优质文章分享
59 0
日学一算法---平方根倒数速算法【转】
本文来源:http://blog.csdn.net/xiaoguohaha/article/details/21652643 文章太牛了,里面的算法更是让我膜拜万分,不得不转过来收藏一下。            我们平时经常会有一些数据运算的操作,需要调用sqrt,exp,abs等函数,...
1402 0
将数组a中数据元素实现就地逆置的算法
给出将整型数组a中数据元素实现就地逆置的算法。所谓就地逆置,就是利用数组a原有空间来存放数组a中逆序排放后的各个数据元素。
82 0
+关注
morixinguan
ITGEGE在线教育嵌入式开发讲师。 CSDN博客专家、CSDN-Linux特邀编辑、CSDN博乐、CSDN学院讲师,目前从事嵌入式开发领域,从事与单片机,Linux,android相关的产品开发。
文章
问答
文章排行榜
最热
最新
相关电子书
更多
网易云音乐音视频算法处理的 Serverless 探索之路
立即下载
阿里技术参考图册-算法篇
立即下载
阿里千亿特征深度学习算法XNN实践
立即下载