linux 内核模块中的浮点运算(再次)
Floating point operations in linux kernel module (again)
我在 Whosebug 中搜索了很多其他问题,但是 none 确实解决了我的问题。
我正在编写一个 linux 内核模块,我需要通过将一个整数除以另一个整数来计算百分比值,以获得介于 0 和 100 之间的浮点值:
int v1 = 5;
int v2 = 25;
float perc = v1 / v2;
由于我们已经知道的所有原因,当我尝试编译它时,我得到了“SSE 寄存器 return with SSE disabled”错误。
是否有在 Linux 内核模块中计算此类除法的解决方法?
非常感谢。
安东尼奥
您可以只使用整数运算,例如
int perc = 100 * v1 / v2;
这将给出一个整数百分比。如果您需要高于 1% 的分辨率,则使用大于 100 的比例因子,并根据需要插入小数点以供显示。
我在 Whosebug 中搜索了很多其他问题,但是 none 确实解决了我的问题。
我正在编写一个 linux 内核模块,我需要通过将一个整数除以另一个整数来计算百分比值,以获得介于 0 和 100 之间的浮点值:
int v1 = 5;
int v2 = 25;
float perc = v1 / v2;
由于我们已经知道的所有原因,当我尝试编译它时,我得到了“SSE 寄存器 return with SSE disabled”错误。
是否有在 Linux 内核模块中计算此类除法的解决方法?
非常感谢。 安东尼奥
您可以只使用整数运算,例如
int perc = 100 * v1 / v2;
这将给出一个整数百分比。如果您需要高于 1% 的分辨率,则使用大于 100 的比例因子,并根据需要插入小数点以供显示。