ForHosting KIT · 開発者向けツール

小数→固定小数点変換

小数を、Q.n形式の固定小数点で保存される整数に変換します。0.1を小数部8ビットにすると保存値は26で、実際の値は0.1015625、誤差は0.0015625です。ファームウェアやDSPの作業に向いており、ブラウザで無料で使えます。

  • 無料
  • ブラウザで動作
  • 登録不要
  • データは端末の外に出ません
ご利用方法 ウェブAPIメールTelegramアプリ 近日
入力した場合
値
0.1
小数部のビット数
8
結果
丸め
Nearest
Qフォーマット
Q.8
スケール
256
分解能
0.00390625

選んだビット数が暗黙の二進小数点の右側に置かれ、格納される整数はどれも一定の分解能の倍数になります。設計定数、フィルタ係数、センサ読み取りを変換する技術者に必要なのは、格納整数、丸め後の再構成誤差、そして 2 のマイナス n 乗の分解能であり、浮動小数点の十六進ダンプではありません。この小数→固定小数点変換器は実数の小数と小数部ビット数 n を受け取り、2 の n 乗を掛け、文書化された丸め方式で整数にスナップし、格納コード、再構成した実数、符号付き丸め誤差、その Q.n 格子の最終桁単位を返します。

Q 形式の意味と格納整数の作り方

Q 形式は Q.n や Qn と書かれることが多く、Texas Instruments のヘッダ、ARM CMSIS-DSP、無数の FPGA ツールチェーンが用いる、暗黙の二進小数点の右に n ビットを置く二進固定小数の慣例です。

格納整数 I が表す実数値は I を 2 の n 乗で割ったものであり、格子間隔――その形式の分解能、すなわち最終桁単位――はちょうど 2 のマイナス n 乗です。したがって小数 x を符号化するには x に 2 の n 乗を掛けて整数へ丸め、復号は同じ尺度での一回の除算です。

表現可能な値はすべて同じ絶対刻みを共有するため、決定的な丸めと安価な整数乗算累積が必要な音声コーデック、モータ制御ループ、参照表がこれを選びます。小数から固定小数点への変換、Q 形式変換、Q15 変換、float を Q31 へ、といった検索語はまさにこの作業を指します。人間向けの小数を取り、n を選び、格納整数と丸めが動かした量を読み返すことです。

C マクロは出しません。利用者が格納整数を自ら解釈するのでなければ、選んだ整数ビット幅の機械語全体も詰めません。古典的な確認は小数部 8 ビットでの十分の一です。

尺度は二百五十六、nearest 丸めは二十六を格納し、再構成値は二十六/二百五十六、符号付き丸め誤差は十分の一との差――まさにこのページが見せる三つ組です。

Q 形式変換器が役立つ場面

ファームウェア作者は、フィルタタップ、PID ゲイン、単位換算をヘッダへ貼るとき、Q15 や Q31 変数に載る正確な整数が必要であり、小数から固定小数点への変換器を使います。FPGA と HDL の試験台は、float を決して見ない RTL データパスと一致する刺激が必要なので、同じ数が要ります。

ゲームと音声のツールは、正規化した標本とアニメーション重みを固定格子へ載せ、バイナリアセットへ詰める前に、小数部 8 ビットで足りるかを作家が見られるよう、コードの横に丸め誤差を印字します。計算機算術を教える教室には、「二百五十六を掛けて丸める」という曖昧な説明ではなく、分解能と誤差を同時に示す決定的な神託が必要です。検証失敗は残高を消費しません。

ファームウェア定数と DSP タップ

設計上の小数をヘッダに置くべき Q15 または Q.8 整数へ変え、査読のために格納コードの横に丸め誤差を残します。

FPGA と HDL の試験台

RTL が見るのと同じ固定小数点刺激を生成し、スコアボードが 1 ulp を許容できるよう 2 のマイナス n 乗の分解能を明示します。

教室での計算機算術の確認

任意の n について格納整数・再構成実数・符号付き誤差を示します。二進では正確でない十分の一の古典例も含みます。

Q.n 数の分解能は何ですか?

分解能はちょうど 2^-n です。隣り合う格納整数の間隔です。

どの丸め方式を使うべきですか?

既定の nearest はゼロから遠ざかる半分で、DSP の通例です。選んだ方式は応答にエコーされます。

十分の一を正確に格納できないのはなぜですか?

0.1 は二進有理数ではありません。小数部 8 ビットでは最も近い格納整数は 26 で、26/256 = 0.1015625 として再構成されます。

小数をQ15に変換するには?

小数部を15ビットに設定します。ツールが小数に2の15乗を掛けて整数に丸め、保存される値、実際に表す値、丸め誤差を表示するので、そのままファームウェアに貼り付けられます。

小数部のビット数は最大いくつまで指定できますか?

52までです。0から52までの整数で指定し、値に2のその乗数を掛けた結果が安全な整数の範囲を超える場合は、下位ビットを黙って失わないよう変換を受け付けません。

このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。

POSThttps://api.kit.forhosting.com/dev/decimal-to-fixed-point

Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。

curl -X POST https://api.kit.forhosting.com/dev/decimal-to-fixed-point \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"value":0.1,"fractional_bits":8}'
{
  "value": 0.1,
  "fractional_bits": 8
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.decimal_to_fixed_point",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。

1リクエストあたり$0.002

単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。

max_fractional_bits52
HTTPコード意味
401unauthorizedAPIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。
402insufficient_balance残高が不足しています。チャージ後に再度お試しください。
404unknown_type指定されたタスクタイプは存在しません。タイプ名を確認してください。
429rate_limitedリクエストが多すぎます。しばらく待ってから再度お試しください。

組み込みファームウェア、DSP カーネル、FPGA データパス、ゲームエンジンは、いまも多くの信号を IEEE-754 浮動小数点ではなく Q 形式の固定小数点整数として保持します。

Q 形式の意味と格納整数の作り方

これは IEEE-754 浮動小数点ではありません。指数フィールドも隠れ先頭 1 も段階的アンダーフローもありません。このエンドポイントはその契約だけを実装します。IEEE-754 ビットパターンへの変換もしません。それらは別の検索意図であり、別のツールが担います。

入力契約、丸め方式、応答フィールド

2 の n 乗が JavaScript の正確な安全整数のままになるためです。rounding は任意で、既定は nearest、すなわちゼロから遠ざかる半分です。多くの DSP 資料の慣例であり、同点を正の無限大へ送る JavaScript の Math.round とは違います。value と 2 の n 乗の積が安全整数範囲を出る場合、下位ビットを黙って落とすのではなくタスクを拒否します。stored が符号付き 16 ビットまたは 32 ビットレジスタに収まるかを知る必要がある場合は、ご自身の語長検査と組み合わせてください。必須フィールド二つと任意の方式一つを含む JSON 本体を送ってください。value は符号化する有限小数で、JSON 数値でも数値文字列でもよく、別名 decimal と number を受け付けます。fractional_bits は Q.n の整数 n で、0 から 52 まで(両端を含む)です。別名は frac_bits、n、q です。ほかの文書化済み方式は toward_zero(尺度済み積の切り捨て)、floor(負の無限大方向)、ceil(正の無限大方向)です。それ以外のトークンは invalid_input で失敗します。欠落フィールド、空文字列、非有限値、整数でない n、0 から 52 の外の n も失敗し、それらの失敗は課金されません。成功時、本体は value と fractional_bits をエコーし、丸め方式を名付け、q_format を Q.n として報告し、scale(2 の n 乗)、resolution(2 のマイナス n 乗)、stored(整数コード)、stored_hex(符号付き絶対値十六進)、reconstructed(stored を scale で割った値)、rounding_error(reconstructed から元の値を引いた差)、abs_error、丸め誤差がゼロのときの真偽値 exact、短い公式文字列を返します。このエンドポイントは総ビット幅を仮定しないため、十六進は隠れ容器の二の補数ではなく符号付き絶対値です。

Q 形式変換器が役立つ場面

実装は純粋な parse のティア A なので、成功した呼び出しは毎回、公開された基本料金 $0.002 であり、モデルトークンも外向きネットワークもありません。n を文書化された範囲に保ち、継続的インテグレーションのフィクスチャに stored と rounding_error を固定すれば、数値ライブラリ一式を立てずに、ヘッダ、シミュレータ、エッジワーカー向けの再現可能な Q 符号化が得られます。検索意図が float の IEEE-754 十六進パターンなら浮動小数点ビットパターンツールを使い、意図が誤差と分解能付きの Q.n 整数なら、これが契約です。

小数を Q 形式の固定小数点整数へ変換するにはどうすればよいですか。

有限の value と 0 から 52 の整数 fractional_bits n を送ってください。API は stored = round(value × 2^n) に加え、reconstructed、rounding_error、resolution 2^-n を返します。

小数から固定小数点への変換器の料金はいくらですか。

ブラウザツールは無料です。API 要求は成功した呼び出しごとに前払い KIT 残高から $0.002 を使い、無効な入力は課金されません。

KITの完全なドキュメントを見る →