ネガバイナリ変換
13はネガバイナリで11101です。基数−2では位の値が1、−2、4、−8、16と符号を交互に変えるため、負の数も含めてどの整数も0と1だけで、マイナス記号なしに書けます。十進数との相互変換がブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 値
- 13
- 方向
- To negabinary
- 結果
- 11101
- 10進数
- 13
- 負の2進数
- 11101
- アルファベット
- 01
ネガバイナリ変換器は、日常の10進と基数−2のあいだで符号付き整数を書き換えます。基数−2は根がマイナス2で、数字は0と1だけです。−2の累乗が正と負を交互にとるため、正・負・0のいずれの整数も、専用の符号ビットや2の補数の幅なしに一意の表現を持ちます。計算機算術の学習者、パズル作者、珍しい記数法を探る技術者は、10進値またはビット列を貼り付け、符号化か復号を選び、整形済みの10進整数・ネガバイナリ文字列・桁数・固定アルファベットを含む決定的な結果を得られます。
ネガバイナリ(基数−2)の符号化と復号の仕組み
ネガバイナリは根がマイナス2の位取り記数法です。各位は−2の累乗で、一の位は(−2)の0乗で1、次は−2、その次は4、−8、16…と指数が増えるにつれ符号が交互に変わります。数字記号は0と1だけで通常の2進と同じアルファベットですが、位の符号が交互であるため、1と0の列は先頭にマイナス文字がなくても負の合計になり得ます。
古典的な確認例では、2は110(4−2=2)、4は100、−1は11(−2+1=−1)に符号化されます。符号付き10進整数を符号化するときは、−2で割った余りを繰り返し取り、各余りが非負になるよう調整します。切り捨て除算で余りが−1になる場合は余りに2を足し、次の商に1を繰り上げます。
桁は最下位から集め、通常の左から右の列にするため反転し、0自体を除き先頭の0は取り除きます。復号では左から右へホーナー法風に累積し、実行中の合計に−2を掛けて次の桁を加えます。任意の接頭辞0nbまたは0NBは、2進ツールが0bを受け付けるのと同様に除去され、スクリプトが基数マイナス2のリテラルを明確に付けられます。
空白、ビット列内の+/−、2以上の桁、文字、句読点などの不正文字は、位置を示して invalid input で中断します。絶対値はJavaScriptの安全な整数範囲内に留め、直列化後も各桁が正確であるようにします。
正の基数の通常2進や固定幅の2の補数だけが必要な場合は、別の検索意図と専用ランディングとして扱い、この符号付き基数マイナス2変換器を正直な範囲を超えて広げないでください。
ネガバイナリ変換器が実際に役立つ場面
情報科学の授業は、符号ビットや2の補数が自然法則ではなく設計上の選択であることを示すために負の基数を導入します。学生が手でいくつかの負の整数を変換すると、交互の位の値が符号そのものを桁に吸収する様子が分かります。
試験対策ジェネレータやLMSプラグインには、ネガバイナリ想定の列を通常2進として復号した答えを誤りとし、正当なビット列に先頭マイナスを捏造しない決定的オラクルが必要です。複数基数の表示コンポーネントの単体テストを書く技術者は、期待されるネガバイナリ列を生成し、通常2進変換器が拒否する負の境界ケースも含めて10進↔基数−2の往復一致を検証します。
記号グリフのない異星の記数法を作るゲーム設計者も、設定ツールやセーブ形式に決定的変換を必要とします。通常の2進・16進ダンプ、固定幅2の補数、グレイコード、36までで止まる複数基数表は別の検索意図として扱い、この整数ネガバイナリ変換器を正直な範囲を超えて広げないでください。
活用例
負基数の算術レッスン
宿題の整数を10進と基数−2のあいだで変換し、交互の位符号が符号ビットなしで負を表すことを学習者に示します。
試験・LMSの自動採点
不正桁を拒否し先頭マイナスを捏造しない決定的オラクルで、ネガバイナリの符号化・復号問題を採点します。
パズル鍵と単体テスト用フィクスチャ
競技プログラミングのサンプルや複数基数UIテスト向けに、負の境界ケースを含む期待される基数−2列を生成します。
よくある質問
ネガバイナリとは何ですか?
ネガバイナリは基数−2で、根がマイナス2、数字は0と1だけの位取り記数法です。−2の累乗は符号が交互に変わるため、専用の符号ビットなしでどの整数も一意に表せます。
負の結果のビット列にマイナスが付かないのはなぜですか?
負の位の値(…、16、−8、4、−2、1)がすでに符号を表します。列11は−2+1=−1です。
十進数を手でネガバイナリに変換するにはどうしますか?
−2で割り続け、余りを0か1にします。余りが−1になるときは2を足し、商に1を繰り上げます。最後に余りを後ろから順に読むと、13は11101になります。
ネガバイナリを十進数に戻すにはどうしますか?
右から順に1、−2、4、−8、16と続く位の値のうち、1がある位を足します。11101なら16−8+4+1で13です。左から、途中の合計に−2を掛けて次の数字を足す方法でも求められます。
小数やとても大きな数も変換できますか?
できません。受け付けるのは整数だけで、先頭にプラスかマイナスを付けられます。小数や指数表記は拒否されます。絶対値が9007199254740991までなら、結果のすべての桁が正確に保たれます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/enc/base-negabinary \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"value":"13","direction":"to_negabinary"}'const res = await fetch("https://api.kit.forhosting.com/enc/base-negabinary", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"value": "13",
"direction": "to_negabinary"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/base-negabinary",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"value": "13",
"direction": "to_negabinary"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/base-negabinary", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"value":"13","direction":"to_negabinary"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"value":"13","direction":"to_negabinary"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/base-negabinary", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"value": "13",
"direction": "to_negabinary"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.base_negabinary",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
不正な桁、空入力、非整数は、黙った誤答ではなく明確な invalid_input で失敗します。無料のブラウザフォームと有料APIは同一の純粋な同型関数を共有するため、授業デモ・宿題確認・自動パイプラインが同じ入力で食い違うことはありません。成功したAPI呼び出しの料金は公開ベースの$0.002/件です。
ネガバイナリ(基数−2)の符号化と復号の仕組み
アルゴリズムは正確な整数演算のみを用い、浮動小数の丸め・乱数シード・壁時計の時刻・ネットワーク呼び出しはなく、同一入力は常に同一のJSONを返します。
送信する内容と返ってくる内容
フォームやスクリプトがUIに合う名前を使えるよう別名も受け付けます。絶対値が Number.MAX_SAFE_INTEGER を超える10進値は拒否され、下位桁が黙って消えないようにします。往復の古典例では13は11101に符号化されて再び13に戻り、−5は1111に符号化されます。必須フィールドは value と direction の2つです。value が符号付き10進整数のときは direction を to_negabinary、value が基数−2のビット列のときは from_negabinary にしてください。value は n、number、input、text、decimal、negabinary、bits、base_neg2 も可。direction は dir、mode、op に加え to、from、encode、decode、to_base_neg2、from_base_neg2、decimal_to_negabinary、negabinary_to_decimal などの短縮語も可です。to_negabinary では value はJSON整数、または先頭に任意の+/−が付いた数字列でよく、分数・科学記数法・裸の単語・NaN・Infinity・空文字は invalid_input で失敗し課金されません。from_negabinary では任意の0nb接頭辞のあと、各文字は0または1でなければならず、2・3・アンダースコア・ハイフン・空白・先頭符号などを含む他の文字は、不正なネガバイナリ桁と0始まり位置を示すメッセージで失敗します。成功時の応答は、整形済み value 文字列、正規化済み direction、必要に応じて負になる decimal 数値、コンパクトな基数−2文字列 negabinary、主変換形 result(符号化時はネガバイナリ、復号時は10進文字列)、アルファベット文字列01、base の −2、ネガバイナリ表現の digit_count を返します。成功したAPI呼び出しの料金は公開ベースの$0.002/件で、検証失敗はプリペイド残高を消費しません。
ネガバイナリ変換器が実際に役立つ場面
パズルや競技プログラミングの作者は、完全な数式処理システムを呼ばずに基数−2の出力や解析を求める課題を出し、小さなparse APIがサンプル試験や秘密鍵の期待値を供給します。本機能は純粋なparseエンジンのため、API料金は成功1件あたり公開ベースの$0.002で、検証失敗は残高を消費しません。
技術的な質問
10進整数をネガバイナリに変換するには?
direction を to_negabinary、value を符号付き整数(JSON整数または任意の+/−付き数字列)で送ってください。APIは negabinary と result フィールドに基数−2のビット列を返します。
ネガバイナリ列を10進に戻すには?
direction を from_negabinary、value を0と1だけの列(任意で0nb接頭辞)で送ってください。APIは符号付き10進整数を返します。ビット列の先頭に+や−を付けないでください。
ネガバイナリ変換の料金は?
ブラウザツールは無料です。APIは成功1回あたり$0.002のKITプリペイド残高を使い、不正入力は課金されません。