問題タブ [fixed-point]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
11090 参照

math - 32ビット除算命令で64ビット除算を実行するにはどうすればよいですか?

これは(AFAIK)この一般的なトピック内の特定の質問です。

状況は次のとおりです。

32ビットRISCマイクロコントローラー(NECのV810のバリアント)に基づく組み込みシステム(ビデオゲームコンソール)があります。固定小数点数学ライブラリを書きたいです。この記事を読みましたが、付属のソースコードは386アセンブリで記述されているため、直接使用することも、簡単に変更することもできません。

V810には整数の乗算/除算が組み込まれていますが、上記の記事で説明した18.14形式を使用したいと思います。これには、64ビット整数を32ビット整数で除算する必要があり、V810は(符号付きまたは符号なし)32ビット/ 32ビット除算のみを実行します(32ビット整数と32ビット余りを生成します)。

だから、私の質問は、64ビット/32ビットの除算を32ビット/32ビットの除算でシミュレートするにはどうすればよいですか(配当の事前シフトを可能にするため)?または、別の方法で問題を調べるために、標準の32ビット算術/論理演算を使用して18.14固定小数点を別の固定小数点で除算するための最良の方法は何ですか?(「最良」とは、最速、最小、またはその両方を意味します)。

代数、(V810)アセンブリ、および擬似コードはすべて問題ありません。Cからコードを呼び出します。

前もって感謝します!

編集:どういうわけか私はこの質問を逃しました...しかし、それでも超効率的にするためにいくつかの変更が必要です(それはすでにあるかもしれませんが、v810によって提供される浮動小数点divよりも高速でなければなりません...)、ですから、評判ポイントと引き換えに私のために自由に仕事をしてください;)(そしてもちろん私の図書館のドキュメントのクレジット)。

0 投票する
3 に答える
1850 参照

python - Python: 2 つの 32 ビット整数 (1 つは int 部分用、もう 1 つは 10 進数用) から固定小数点 10 進数を作成します。

バイナリ データを含むファイルからアンパックされた 64 ビットのタイムスタンプがあります。上位 32 ビットは秒数で、下位 32 ビットは秒の端数です。ビットごとにループせずに、下位32ビットを実際に分数に変換する方法にこだわっています。

助言がありますか?

参考までに、数字は次の4ca1f350 9481ef80ように変換されます。1285682000.580107659

編集:コンテキストについて:データはパケットキャプチャデバイスから取得され、私が見たドキュメントによると、小数部分はおよそナノ秒の精度です(具体的には、32ビットのうち29ビットを出力し、〜2nsを与えます)。

0 投票する
4 に答える
8727 参照

c++ - C++ で double を固定小数点に変換する

C++ に double 変数があり、それを固定小数点数として画面に出力したいと考えています。

基本的に、double と小数点以下の桁数を取り、その小数点以下の桁数まで数値を出力し、必要に応じてゼロをパディングする関数を作成する方法を知りたいです。

例えば:

印刷します

印刷します

したがって、関数は次のように機能します

必要な値を標準出力 (cout) に出力するだけです。

誰もこれを行う方法を知っていますか?

前もって感謝します。

0 投票する
2 に答える
3394 参照

c - 固定小数点符号付き Q8 から Q4 形式への変換

Cで固定小数点符号付きQ8形式から固定小数点符号付きQ4形式に変換する必要があります。4 だけビットシフトできると思いますが、これは正しいですか? 符号ビットを考慮する必要がありますか?

更新: これは ARM11 アーキテクチャ用ですが、アーキテクチャ固有ではないソリューションをお勧めします。

ありがとう

0 投票する
9 に答える
348 参照

c - 2 つの unsigned short を持つ構造体を unsigned int のように扱う方法は? (C)

固定小数点の正数を表す構造体を作成しました。小数点の両側の数値を 2 バイトで構成したい。

ここで、2 つの固定小数点数と を加算Fixed xFixed yます。そのために、それらを整数のように扱い、加算します。

Fixedしかし、Visual Studio 2010 コンパイラが言うように、 と の間で変換することはできませんint

これを行う正しい方法は何ですか?

{short floor, short fraction}編集: Fixedの実装にはコミットしていません。

0 投票する
2 に答える
3817 参照

types - 固定小数点整数とは何ですか?

http://microformats.org/wiki/hreview-aggregate

それは言います:

評価。必要。固定小数点整数 [1.0-5.0]、オプションの代替ワースト (デフォルト: 1.0) および/またはベスト (デフォルト: 5.0)、固定小数点整数、および明示的な平均。

固定小数点整数とは何ですか? 多分それは整数を意味しますか?1.0、2.5、または 5.0 が「固定小数点整数」とも呼ばれるのはなぜですか? 整数には小数部分がないためです。

0 投票する
2 に答える
1346 参照

fixed-point - 固定小数点演算

現在、MicrochipのFixed Point Libraryを使用していますが、これはほとんどのFixedPointLibraryに当てはまると思います。Q15およびQ15.16タイプ、それぞれ16ビットおよび32ビットデータをサポートします。

私が気づいたことの1つは、加算、減算、乗算、除算の関数が含まれていないことです。

これらをどのように行うのですか?整数の数学を使ってそれらを足し算/引き算/掛け算/割り算するのと同じくらい簡単ですか?足し算と引き算が機能しているのがわかりますが、掛け算や割り算では小数部分は処理されません...?

0 投票する
5 に答える
22098 参照

c - 浮動小数点の C コードを固定小数点に変換するにはどうすればよいですか?

double を使用する C コードがあります。DSP ( TMS320 )でコードを実行できるようにしたい。ただし、DSP は double をサポートせず、固定小数点数のみをサポートします。コードを固定小数点に変換する最良の方法は何ですか? 固定小数点数 (整数として実装) 用の優れた C ライブラリはありますか?

0 投票する
2 に答える
4571 参照

php - PHPで正確な実数演算を行う

PHPで実数を表す文字列に対して基本的な算術演算を行う最も速くて簡単な方法は何ですか?操作したいMySQLのDECIMAL値を表す文字列があり、その後、結果をデータベースに返します。浮動小数点実数表現によって発生するエラーを回避したいと思います。

Pythonのdecimalのような標準ライブラリはありますか?おすすめできるFOSSライブラリはありますか?

よろしく

0 投票する
3 に答える
272 参照

.net - 10 進数型の派生 - 固定精度

.NET で、通貨として使用される decimal から派生した型を作成する方法があるので、算術演算を目的の小数点以下の桁数に丸めます。

そうでない場合、.NET でのベスト プラクティスは何ですか?

編集(動機):

価格があるとしましょう:

0.25そして、私はそれの一部を販売しています。31.25

今、15% の割引があり、割引を計算して絶対値で表示するには、次のようにします。

他の方法を使用する場合:

たとえば、サードパーティに切り捨てて表示させると、次のようになります。

そして、あなたが彼女にそのようなものを与えれば、すべての会計士はあなたの囲炉裏を食べます.

ここに税金を追加すると、問題はさらに倍増します。

したがって、NO はできるだけ多くの小数を格納し、できるだけ遅く丸めます。財務的に正しいことを行うクラスを作成し、できるだけ早く丸め/切り捨てて保存します。