int_sqrt.c

来自「Lib files of linux kernel」· C语言 代码 · 共 33 行

C
33
字号
#include <linux/kernel.h>#include <linux/module.h>/** * 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;}EXPORT_SYMBOL(int_sqrt);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?