大整数の加算計算機
9223372036854775807に1を足すと、正確に9223372036854775808になります。符号付き64ビット整数からあふれる和ですが、ここでは1桁も失われません。どんな長さの整数でも丸めずに足せます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 1つ目のテキスト
- 9223372036854775807
- 2つ目のテキスト
- 1
- Sum
- 9223372036854775808
- 桁数
- 19
- 符号
- positive
ネイティブの六十四ビット整数は、和が表現可能な範囲を越えた瞬間に正確さを失います。JavaScript の数値は九千兆を超えると整数としての同一性を失い、符号付き long は九垓付近でラップするか例外を投げ、符号なしレジスタは二の六十四乗を保持できません。本大整数加算計算機は任意長の十進整数を二つ受け取り、筆算どおりの繰り上げ算術で加算し、正確な十進和を文字列として返します。丸めもラップも指数表記もありません。符号付き六十四ビットの最大値に一を足せば 9223372036854775808 が得られ、百桁の帳簿合計を二つ足しても各桁が残ります。検証失敗は課金されません。
ネイティブ加算が失敗する理由と筆算の繰り上げが正確である理由
よく使うネイティブ整数型にはいずれも硬い上限があります。符号付き六十四ビット語の上限は 9223372036854775807 であり、一を足すと大きな負へラップするか、飽和するか、オーバーフローを起こします。大整数加算計算機は、その妥協を拒否するために存在します。
各オペランドは符号付き十進数字列として読まれ、先頭ゼロは除かれ、二つの絶対値は最下位桁から繰り上げ零または一で、紙の上とまったく同じく加算されます。符号が異なれば小さい絶対値を大きい方から引き、大きい方の符号を残します。絶対値が等しく符号が反対なら零に打ち消します。
結果は先頭のマイナスがたかだか一つでプラス符号のない正規の十進文字列として書き戻されます。各段が有限の桁演算であるため、公開された桁数上限までは長さにかかわらず和は正確です。これがアルゴリズムの全体です。
浮動小数点も、剰余還元も、丸めモードもありません。本機能はさらに、和の絶対値が何桁か、和が正か負か零か、符号付き六十四ビット範囲の外にあるかを報告します。固定幅システムとまだ会話しなければならない呼び出し側は、文字列形式を残すべきタイミングが分かります。
正確な大整数加算が役立つ場面
財務と請求のパイプラインは、表計算セルや六十四ビットの金額列が丸めなしでは保持できない請求行、課税標準、暗号資産の補助単位合計を足します。暗号と符号化の道具は、和だけが必要で完全な多倍長ライブラリは要らないときに、大きな公開整数、製造番号、ハッシュサイズのカウンタを足します。
情報科学の授業とプログラミング面接の練習には、九が並んだ列に一を足した繰り上げ伝播を示し、2^63 から一を引いて一を足しても符号付き long に収まると装わないオラクルが必要です。データ移行スクリプトは、これから広げようとしている整数列の静かなオーバーフローを捉えるため、データベースの NUMERIC 列の SUM を本端点と照合します。
そうすれば、任意精度算術サービスを自ら立てずに、帳簿・採点・エッジワーカー向けの再現可能な正確合計が得られます。
活用例
六十四ビットを超える帳簿・請求の合計
符号付き long や表計算セルをすでに溢れる金銭・税・補助単位の二値を足し、正確な十進合計を文字列として残します。
採点と面接向けのオーバーフロー照合
学習者や候補者の加算器を、九が並んだ列に一を足した場合や符号付き六十四ビット溢れを含む決定的な筆算和と照合します。
整数列を広げる前の移行点検
データベースの SUM をこの正確合計と比べ、列がまだ int64 に収まるか、decimal や numeric 型へ変えるべきかを見極めます。
よくある質問
六十四ビット型を溢れる二つの整数をどう足しますか?
a と b を十進数字列(先頭符号は任意)として送ってください。
計算機は溢れ時にラップや飽和をしますか?
しません。 和は公開桁数上限の範囲で無制限です。ラップもクランプもありません。固定幅の飽和加算には、専用の飽和整数ツールを使ってください。
負の数と正の数も足せますか?
足せます。負の値の前にマイナス記号を付けてください。符号が異なる場合は大きい方の絶対値から小さい方を引き、大きい方の符号を残します。絶対値が同じで符号が逆なら0になります。
それぞれの数は何桁まで入力できますか?
先頭の0を除いて、それぞれ10000桁までです。数字と任意のプラスまたはマイナス記号だけで入力してください。桁区切り、空白、小数、16進数の接頭辞、指数表記は受け付けません。
表計算ソフトで大きな数の和が狂うのはなぜですか?
多くのセルは数値を浮動小数点で保存し、9007199254740991を超えるとすべての整数を表せなくなるためです。10^16に1を足しても10^16として保存されることがあります。ここでは数字を文字として扱い、すべての桁を保ちます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/dev/bignum-add \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"a":"9223372036854775807","b":"1"}'const res = await fetch("https://api.kit.forhosting.com/dev/bignum-add", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"a": "9223372036854775807",
"b": "1"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/bignum-add",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"a": "9223372036854775807",
"b": "1"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/bignum-add", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"a":"9223372036854775807","b":"1"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"a":"9223372036854775807","b":"1"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/bignum-add", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"a": "9223372036854775807",
"b": "1"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.bignum_add",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_digits | 10000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
成功した API 呼び出しは公開済みの基本料金 $0.002 です。
ネイティブ加算が失敗する理由と筆算の繰り上げが正確である理由
JSON 数値や多くの表計算セルの実体である IEEE-754 倍精度は、大きさが 9007199254740991 を超えるとすべての整数を表せなくなり、10^16 に一を足したものがすでに 10^16 として格納されることがあります。
入力契約、応答の形、上限、および誤り
符号を読んだあと先頭ゼロは除かれ、マイナス零は零になります。除去後の各絶対値は最大 10000 桁までです。その上限は宣言され強制されるため、貼り付けた桁の壁で隔離環境を使い果たせません。異符号も同じです。 マイナス百のあとに零が二十個、それに一を足すと十九桁の負になります。検証失敗は課金されません。必須フィールド a と b を持つ JSON オブジェクトを POST してください。各フィールドは十進整数です。先頭にプラスまたはマイナスを付けられる数字列か、安全整数である JSON 数値です。分数、千の位区切り、桁の途中の空白、十六進接頭辞、指数表記は、フィールド名を付けた invalid_input で拒否されます。空文字と欠落フィールドも同様に失敗します。成功時は本体が二つの加数を正規形でエコーし、正確な十進合計として sum、絶対値の桁数として digit_count、positive・negative・zero のいずれかとして sign、符号付き六十四ビット整数として表せないときは true の exceeds_int64、および sum = a + b を述べる短い公式文字列を返します。例:a が 9223372036854775807、b が 1 なら sum は 9223372036854775808、digit_count は 19、sign は positive、exceeds_int64 は true です。成功した API 呼び出しは公開済みの基本料金 $0.002 です。
正確な大整数加算が役立つ場面
実装は純粋な parse ティア A のため、成功した各呼び出しはモデルトークンも外向きネットワークもなく、公開済みの基本料金 $0.002 です。各オペランドを公開桁数上限以内に保ち、JSON が溢れる値は数値ではなく文字列で送り、返却された和を試験で固定してください。
技術的な質問
大きな値はなぜ JSON 数値ではなく文字列でなければならないのですか。
JSON 数値は IEEE-754 倍精度です。9007199254740991 より大きい整数はすべてが表現できるわけではないため、9223372036854775807 のような値は加算器が走る前にすでに丸められます。数字列は正確なままです。
どの入力が拒否されますか。
a または b の欠落、空文字、分数、千の位区切り、数字以外の文字、10000 桁を超える絶対値は invalid_input で失敗し、課金されません。
大整数加算計算機の料金はいくらですか。
ブラウザ用具は無料です。API 要求は成功した呼び出しごとに前払い KIT 残高から $0.002 です。無効な入力は課金されません。