16ビット整数を浮動小数点数に変換するにはどうすればよいですか?int16をC言語で浮動小数点に変換する
私は小数点以下3桁の精度で表示する必要があると言われている符号付き16ビット変数を持っています。したがって、これは浮動小数点への変換を伴うでしょうか?
私はフロートに自分の16ビットをコピーするだけでこれを試しましたが、これは正しくないようです。
float myFloat = 0;
int16_t myInt = 0x3e00;
memcpy(&myFloat, &myInt, sizeof(int));
私はまた、半精度浮動小数点数について読むが、これを処理する方法がわからないよ...私がする必要がある場合ました。
私はGCCを使用しています。
更新: データソースは、i2cインターフェイスから取得するchar配列[2]です。私はこれを一緒にステッチして署名付きのintにします。
誰でも手助けできますか?
フムを浮上さconveringせずにこのスケーリングされた整数を印刷することができます。なぜ最初はint16なのですか?それは何を表していますか? –
あなたの質問は意味をなさない。 16ビット整数は整数です。小数点以下の桁はありません。 –
私はあなたの要求が(ナンセンスを求めていない限り)もう少し明確になっていると思います。たぶん、ADCからの16ビットの符号付きの値があります。これは3桁の精度(またはそのようなもの)で入力物理的な範囲(私たちを表示しません)に従って 'float'に変換する必要があります。あなたが 'int16_t'の範囲と入力値の範囲を持っていれば、それはただの割合です。 –