2進数変換
42は2進数で101010、101010は10進数で42です。整数を両方向に変換し、ビット数も表示します。負の数にはマイナス記号が付くので符号がひと目で分かります。宿題やビットマスクの確認に使え、ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 値
- 42
- 方向
- To binary
- 結果
- 101010
- 10進数
- 42
- 2進数
- 101010
- ビット
- 6
2進数変換ツールは、日常の十進法と二進法のあいだで整数を書き換えるため、同じ値を10進数としてもビット列としても読めます。学生は位取りや2での繰り返し除算の宿題確認に、開発者は10進より2進の方が分かりやすいビットマスク、プロトコルフラグ、パーミッションビットの文書化に使います。負の整数は符号なしビットパターンの前にマイナスを付けるため、固定ビット幅を仮定せずに符号が一目で分かります。整数以外、裸のテキスト、NaN、Infinity は誤った結果を黙って返すのではなく、明確なバリデーションエラーで失敗します。
10進整数と2進整数を双方向に変換するしくみ
まず、通常の十進法で書かれた有限の整数から始めます。値が0なら、2進表現は単一の桁0であり、それで完了です。値が負の場合は符号を記憶し、絶対値で処理してから、最終的なビット文字列の先頭にマイナスを付け直します。
これにより、幅の分からない曖昧な2の補数ではなく、符号と絶対値の形式が見えます。正の絶対値の場合は、2で繰り返し割り算をし、毎回の余りを記録します。余りは次の最下位ビットになるため、商が0になるまで余りを右から左へ集めていきます。
その余りを逆順に読むと、先頭に余計なゼロのない標準的な左から右への2進文字列が得られます(数値0自体を除く)。逆方向ではホーナー法を使います。0から始め、左から右へ各ビットについて累積を2倍してからそのビットを足します。
同じことですが、右からk番目のビット位置は2のk乗に対応し、その累乗が整数を復元する一意の和に含まれるときビットは1になります。たとえば42は32+8+2であり、6ビットの文字列101010です。101010を再びホーナー法に通すと42が戻ります。
このアルゴリズムは純粋な整数演算です。結果をシリアライズしたときにすべての桁が正確に保たれるよう、値はJavaScriptの安全な整数範囲内に収める必要があります。3.5のような小数の入力は拒否されます。
整数以外の2進の位取りには小数点と別の学習契約が必要になるためです。この機能は意図的に整数に限定されており、2進整数変換という検索意図が明確で信頼できるものに保たれています。
2進整数変換が実務で活躍する場面
中学校・高校の数学の授業では、2での繰り返し除算と位取り表で基数変換を教えます。ビット文字列、10進文字列、ビット数を返す信頼できるオラクルがあれば、表計算の式なしで解答集や授業デモを素早く作れます。
コンピュータサイエンスの演習ではビットマスク、パーミッションフラグ、ステータスワードを扱い、どのフラグが立っているかを説明する際に13と書くより1101と書くほうが明快です。逆方向は、手書きのビットパターンが仕様の10進値とまだ一致するかを確認します。
コーディング面接のウォームアップやオンラインジャッジでは、受験者に10進数から2進数への変換とその逆の実装が求められ、チューターは0、2の累乗、負のエッジケースについて既知の正しい文字列と学生の出力を照合します。
固定幅の2の補数パッキング、浮動小数点の2進小数、複数基数の対応表は、それぞれ固有のページを持つ別の検索意図として扱い、この整数変換ツールを誠実な範囲を超えて引き延ばさないでください。
活用例
宿題と位取りの練習
整数を2進に直し、また10進に戻す教科書の答え合わせに使えます。0や、先頭にマイナスを付けた負数も含みます。
ビットマスクとフラグの文書化
プロトコルメモやレジスタマップを書くとき、10進のフラグ値を読みやすいビット列にしたり、手書きパターンから10進を復元したりします。
面接と単体テストのフィクスチャ
2の累乗や境界条件を含むプログラミング演習と参照テスト向けに、期待する2進・10進文字列を生成します。
よくある質問
2進数変換はどのような入力を受け付けますか?
value は整数である必要があります。小数や非数値の文字列は拒否されます。
負の数は2進でどう表されますか?
符号と絶対値のテキストです。先頭のマイナスのあとに絶対値の2進が続きます(例: −10 → −1010)。固定幅の2の補数は別契約です。
2進数変換の料金はいくらですか?
ブラウザのツールは無料で、端末上で動きます。不正な入力は課金されません。
42を手計算で2進数にするには?
2で割り続け、余りを書き留めます。42では0、1、0、1、0、1となり、最後の余りから順に読むと101010です。変換ツールの結果と同じになります。
3.5のような小数も変換できますか?
できません。整数だけを受け付け、3.5ははっきりしたメッセージとともに拒否されます。小数を2進数で表すには小数点が必要になるため、意図的に対象外にしています。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/conv/binary \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"value":"42","direction":"to_binary"}'const res = await fetch("https://api.kit.forhosting.com/conv/binary", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"value": "42",
"direction": "to_binary"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/conv/binary",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"value": "42",
"direction": "to_binary"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/conv/binary", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"value":"42","direction":"to_binary"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"value":"42","direction":"to_binary"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/conv/binary", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"value": "42",
"direction": "to_binary"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "conv.binary",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_abs | 9007199254740991 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
direction を to_binary にして 42 を入れるとビット列 101010 が返り、direction を from_binary にしてそのビット列を戻すと 42 が10進文字列として復元されます。無料のブラウザフォームと有料APIは同一の純粋な同型関数を共有するため、授業デモと自動化パイプラインが同じ入力で食い違うことはありません。成功したAPI呼び出しの料金は、公開された基本価格の1件あたり $0.002 です。
10進整数と2進整数を双方向に変換するしくみ
浮動小数点の丸め、乱数シード、時刻、ネットワーク呼び出しは一切ないため、同一の入力からは常に同一のJSONが生成されます。
送る内容、選ぶ方向、返ってくる結果
絶対値が9千兆強、すなわち Number.MAX_SAFE_INTEGER を超える値は拒否され、2進文字列が下位ビットを黙って失うことがないようにします。宿題の確認や面接のウォームアップには無料のブラウザフォームを使い、ビット操作テスト用の参照フィクスチャが必要なときはCIスクリプトから同一の契約を呼び出してください。1回の呼び出しで2から36までの任意の基数間変換が必要な場合は、この10進と2進のページに機能を詰め込むのではなく、汎用の基数変換ページをご利用ください。変換する整数を必須フィールド value に入れ、写像を選ぶ必須フィールド direction と一緒に送信します。direction の to_binary(別名 decimal_to_binary、encode)は value を10進の整数として扱い、2進文字列を返します。from_binary(別名 binary_to_decimal、decode)は value を0と1だけの2進整数(任意の0b接頭辞可)として扱い、10進整数を文字列で返します。value はJSONの整数でも、先頭に任意のプラスまたはマイナスを付けた数字文字列でも構いません。エイリアス n、number、input、text、decimal、binary も受け付けるため、フォームやスクリプトはUIに合った名前を使えます。value や direction の欠落、空文字列、小数部を持つ値、指数表記、裸の単語、NaN、Infinity は invalid_input で失敗し、課金されません。成功すると、整形済みの value 文字列、正規化された direction、文字列としての変換結果 result、decimal と binary の両方の表示、符号なしビット数、ブール値の negative、変換元と変換先の基数が返ります。例として、value 42 と to_binary は result 101010 に、value 101010 と from_binary は result 42 に対応します。成功したAPI呼び出しの料金は公開された基本価格の1件あたり $0.002 で、バリデーション失敗はプリペイド残高を消費しません。
2進整数変換が実務で活躍する場面
組み込みファームウェアのメモやプロトコル文書では、レビュアーがビットオフセットを一目で検証できるよう、レジスタフィールドを10進アドレスと並べて2進表記で示すことがよくあります。この機能は純粋なparseエンジンであるため、API料金は公開された基本価格の成功1件あたり $0.002 で、バリデーション失敗は残高を消費しません。リクエストを安全な整数の上限内に収め、テストでは result 文字列を固定すれば、宿題、LMSプラグイン、エッジワーカー向けに再現可能な変換が得られ、独自の数式処理システムを立てる必要はありません。
技術的な質問
2進数から10進数へ戻すにはどうしますか?
direction を from_binary にし、0と1のビット列を渡します(任意の0b接頭辞、任意の先頭マイナス)。result フィールドは10進整数の文字列で、たとえば101010は42になります。
小数を入力するとどうなりますか?
リクエストは invalid_input で失敗します。このツールは整数だけを変換します。小数の2進には小数点と別の製品意図が必要です。