ある固定小数点表現から別の固定小数点表現に数値を変換しようとしています。私は2の補数表現(Qmf表現)を使用しています これは、ハードウェア実装を検証するためです。ハードウェア実装は次のように機能します。2つの固定小数点表現の間の変換
入力データはQmf形式です。入力データは8ビット幅で、6ビットの長さがあります。私はそれを4つの小数ビット(整数ビットなし)で4ビット数に変換したいと思います。同じことについていくつかの疑問があります。
Q26 {range [-2,1.984375]}フォーマットから1.984375のような数字をQ04 {range [-0.5,0.4375]}フォーマットに変換しようとすると、ハードウェアの実装は次のようになります。 Iビット6 & 7が整数部に使用され、4ビットレジスタに格納されるため、ビット5-2を読み込みます。したがって、この値はQ04形式に変換されたときに-0.5と解釈されます。 -0.5は正しいですか?発生するエラーの量は膨大であるようです。私は何か間違っているのですか? 上記の方法が正しい場合。上で説明したハードウェアアプローチを模倣するソフトウェアで、ある固定小数点表現から別の固定小数点表現に変換する標準的な手順はありますか?私はQ26表現から浮動小数点数に変換し、それを固定小数点に変換することを考えています。ソフトウェアでこれを行うよりクリーンな方法がありますか?
Q26番号がQ04形式で保存できる最大値よりも大きいため、変換ではエラー(オーバーフロー)が報告されるか、可能な限り最大値が返されます。 – 1201ProgramAlarm
あなたのQ0.4フォーマットは、[範囲-0.5 .. + 0.4375]または符号なし[0..0.9375]と署名されていますか? – NickJH
私は署名された表現を使用しています。 – a220599