二進数除算計算機
符号なしの二進数どうしを割り、正確な商と余りを復元法の手順つきで求めます。110101を101で割ると商は1010、余りは11です。各サイクルでシフト、比較、除数を引いたかどうかが分かり、ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 被除数
- 110101
- 除数
- 101
- 商
- 1010
- 余り
- 11
この二進数除算計算機は、2つの符号なし二進整数を割り、正確な商と余りを返します。算術ハードウェアの説明で使われる古典的な復元除算法について、シフト、比較、減算、復元の判断もすべて表示します。入力できるのは0と1だけで構成された文字列で、0b接頭辞も使用できます。処理前に先頭のゼロを正規化します。JavaScriptの数値へ変換せず、ビット文字列を直接扱うため、大きな入力でも精度が失われません。
二進数の商と余りの定義
二進除算でも、十進数の筆算と同じ整数の恒等式が成り立ちます。被除数は除数と商の積に余りを加えた値であり、余りは必ず除数より小さくなります。異なるのは表記する数字と桁の重みだけです。
二進数の各桁は2の累乗を表すため、被除数の最上位ビットから最下位ビットへ、商を1ビットずつ組み立てられます。商のビットが1なら、現在の部分余りから除数を引けます。0なら引けません。 最後の被除数ビットを処理した時点で、蓄積した商と部分余りが答えになります。
この計算機は符号なし整数だけを受け付け、ハードウェア除算器が符号処理とは別に行う絶対値の演算にトレースを集中させます。先頭のゼロは整数値を変えないため、正規化した入出力から除去します。被除数0は有効で、商と余りはいずれも0です。
0b接頭辞は使用できますが、途中の空白、十進数字、符号、小数点は、ビット単位の仕様を明確に保つため受け付けません。
復元除算トレースの読み方
トレースには、正規化した被除数の各ビットにつき1サイクルが記録されます。サイクルの開始時に現在の余りを左へシフトし、次の被除数ビットを最下位位置へ取り込みます。続いて、そのシフト後の余りと除数を比較します。
除数を引ける場合は減算し、商へ1を追加して、差を次のサイクルへ渡します。引けない場合、減算結果は負になるため、ハードウェア上は以前の非負の余りを復元して商へ0を追加します。最適化された回路は先に試験的な減算を行ってから復元できますが、この決定的なソフトウェアは比較を先に行い、同等の状態遷移を実行します。
減算は明示的な借りを伴う二進文字列処理なので、浮動小数点を経由せず、機械語の1ワードを超えるオペランドでも下位ビットを失いません。
ハードウェア学習と試験での結果の利用
返されるオブジェクトは、人向けの説明にも自動検証にも使える構成です。デジタル設計を学ぶ方は、各サイクルを余りレジスター、除数レジスター、減算器、比較器、商レジスター、制御器からなるデータパスと比較できます。
HDL開発者は正常な応答を Verilog または VHDL テストベンチの期待値ベクトルに変換し、最終余りが除数より小さいという不変条件も確認できます。ネイティブ除算命令を持たないプロセッサー向けのビット単位除算ファームウェアの検証にも同じベクトルが役立ちます。トレースを有限に保つため、各オペランドは1024ビットまでです。
符号付き除算、固定小数点、丸め、非復元法、SRT法は対象外です。
活用例
復元除算法の授業
デジタル論理の授業で、各シフト、条件付き減算、商ビット、復元された余りを順に確認できます。
HDLテストベクトルの作成
符号なし除算モジュール用に決定的な商と余りの期待値を作り、サイクル状態を比較できます。
ビット単位ファームウェアの検証
整数除算命令のない機器向け除算ルーチンを、精度を失わずに検証できます。
よくある質問
復元二進除算とは何ですか?
シフトと減算を行い、1サイクルごとに商を1ビット生成し、除数を引けない場合は部分余りを復元する方式です。
計算機は余りも返しますか?
はい。 二進数の商と最終的な余りを返します。余りは、有効な0以外の除数より必ず小さくなります。
JavaScript整数より大きい二進数も除算できますか?
はい。 最大1024ビットの文字列を直接処理し、オペランドを浮動小数点数へ変換しません。
符号付きまたは小数の二進数に対応していますか?
いいえ。 符号なし二進整数だけに対応します。符号補正と固定小数点の尺度には追加の規約が必要です。
ゼロで割るとどうなりますか?
結果は出ません。除数がゼロだと、割り算の関係を満たす商が存在しないためです。一方、被除数がゼロの場合は問題なく、商も余りもゼロになります。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/elec/binary-division \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"dividend":"110101","divisor":"101"}'const res = await fetch("https://api.kit.forhosting.com/elec/binary-division", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"dividend": "110101",
"divisor": "101"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/elec/binary-division",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"dividend": "110101",
"divisor": "101"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/elec/binary-division", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"dividend":"110101","divisor":"101"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"dividend":"110101","divisor":"101"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/elec/binary-division", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"dividend": "110101",
"divisor": "101"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "elec.binary_division",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_chars | 1024 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
ブラウザー版とAPI版は同じ決定的な処理を共有しており、デジタル論理の授業、解答例、テストベクトル、実装検証にご利用いただけます。
二進数の商と余りの定義
除数0は恒等式を満たす商が存在しないため、invalid_inputになります。
復元除算トレースの読み方
応答では分岐を subtract_divisor または restore_remainder として示し、取り込んだビット、シフト後の余り、商のビット、結果の余りを記録します。これは学習用の復元除算表現です。余りの列を追えば各商ビットの理由を確認でき、quotient_bit を連結すれば先頭ゼロ正規化前の商を再構成できます。
ハードウェア学習と試験での結果の利用
最上位の dividend と divisor は正規化したオペランドを示し、quotient と remainder は必要な結果を簡潔に示します。method はトレースを restoring_division として識別し、順序付きの steps 配列は演習、波形計画、単体試験に使える各サイクルの根拠を提供します。ネットワーク、乱数、保存領域、時刻に依存しないので、同じ入力からは常に同じJSONが得られます。ブラウザーでは無料で、APIの自動処理は1項目あたり $0.002 です。
技術的な質問
除数が0の場合はどうなりますか?
0による除算には有効な商と余りが存在しないため、invalid_input で失敗します。
APIリクエストの料金はいくらですか?
ブラウザーでの計算は無料です。APIで正常に処理した1項目の基本料金は $0.002 で、無効な入力には課金されません。