2017-06-14 50 views
1

StackOverflowの中で他にもたくさんの質問がありましたが、私の問題は本当に解決されませんでした。Linuxカーネルモジュールの浮動小数点演算

私はLinuxのカーネルモジュールを書いていますし、私は0と100の間の範囲の浮動小数点値を取得するために別の整数でダイビングで整数をパーセント値を計算する必要があります:すべてのために

int v1 = 5; 
int v2 = 25; 
float perc = v1/v2; 

私が既に知っている理由は、私がコンパイルしようとすると、 "SSEレジスタ復帰でSSEが無効になりました"というエラーが発生します。

Linuxカーネルモジュール内でそのような分割を計算するための回避策はありますか?

ありがとうございました。 Antonio

答えて

6

整数演算を使用できます。

int perc = 100 * v1/v2; 

これは整数パーセンテージを示します。 1%よりも高い解像度が必要な場合は、100を超える倍率を使用し、必要に応じて表示目的で小数点を挿入します。

+1

ありがとうございます! –

+2

+1カーネルで浮動小数点を行う正しい方法は、それをしないことです。 OP:浮動小数点でこれを行う必要がある理由はありますか? – tangrs

+0

FOPは必須ではありませんが、回避策として@Paulが問題を解決しました。 –

関連する問題