ビットOR計算機
5 OR 3 は7です。2進数の101と11を右端でそろえ、どちらかに1がある桁を1にすると111になります。2つの整数を入力すると、32ビットで切り捨てずに正確なビット単位の OR を求めます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- A
- 5
- B
- 3
- 結果
- 7
- 式
- 5 | 3 = 7
- 2進数 a
- 101
- 2進数 b
- 11
ビットごとの OR は、一方のオペランドまたは両方ですでに立っているビットを結果でも立てる整数演算です。開発者は権限フラグの合成、機能ビットの梱包、ハードウェアレジスタマスクの結合のたびに、C、Java、JavaScript、Python、Go、およびほとんどのアセンブリ方言で縦棒として書きます。学習者は、二つの十進数を二進に直し、最下位からビットを揃え、すでに 1 がある列すべてに 1 を書くときに同じ演算子に出会います。この計算機は二つの整数を受け取り、言語の 32 ビット切り捨てではなく厳密な整数演算で包括的ビット OR を評価し、結果の整数と両入力および答えの二進表示を返すので、列ごとの規則を目で確認できます。
ビットORが各ビットに対して行うこと
C、Java、JavaScript、Python、およびほとんどのアセンブリ言語で縦棒として書かれるビットORは、位置 k のビットが第一オペランド、第二オペランド、または両方で 1 であるときに結果整数の同じ位置を 1 にする演算です。規則は二ビットの包括的選言です。0 または 0 は 0、それ以外の組合せはすべて 1 です。
両方ですでに立っているビットを落とす排他的論理和とも、各オペランドを真偽一つに潰してビット列を歩かない論理和とも違います。十進の組を手で追うと列規則が具体になります。5 の二進は 1-0-1、3 は 1-1 で、最下位から揃えると 1-1-1、すなわち 7 です。
12 は 1-1-0-0、10 は 1-0-1-0 で、列ごとの包括的 OR は 1-1-1-0、すなわち 14 です。同じ恒等式でフラグ語は権限を溜めます。読み取りがビット 0、書き込みがビット 1 なら、読み取りまたは書き込みは整数 3 です。
ハードウェアレジスタマップ、ファイルモードビット、ネットワークプロトコルのフラグは、いずれもこの 1 を寄せ集める型を使います。名前付きフラグの解釈は行わず、上位ビットが機械語長を超えるときに生の言語演算子がしばしば行う 32 ビット切り捨ても行いません。
ビットOR計算機が役立つ場面
開発者は権限マスクの組み立て、機能ビットの合成、ヘッダ定数が本当に想定した包括的組合せかを確認するときにビットOR計算機を使います。組込みやプロトコルの仕事ではレジスタを十六進ダンプとして書くことが多く、二つの整数を変換して OR し、二進欄を読み返す方が、一度きりの確認にデバッガを開くより速いです。
計算機科学の授業は and、xor、シフトと同じ週にビットORを導入します。決定的な神託があれば、学習基盤は信用できない受講者コードを実行せずに十進の答えとビット列の両方を採点できます。不正入力は残高を消費しません。
要求を二つの安全整数に保ち、テストに基準例を固定すれば、一命令の仕事のために数式処理系を立てなくても、ノートと自動化ワーカーで同じ a 縦棒 b が得られます。2 の 40 乗や 1 のような大きなオペランドもここでは厳密です。32 ビットの言語演算子なら上位ビットを落として誤った 1 を返すはずで、まさに本契約が防ぐ無言の不具合です。
活用例
権限と機能フラグのマスク
二つの整数フラグ語(読み取りまたは書き込み、機能 A または機能 B)を合成し、十進の結果と二進ビットを読み返して和集合を確認します。
授業のビット演算課題
学習者に二つの整数を送らせ、十進の a | b と二進の列規則の両方を、非整数を拒否する決定的な神託で照合させます。
レジスタとプロトコルの定数
文書化されたハードウェアまたはプロトコルのマスクが、列挙された二欄の包括的 OR であることを、デバッガを開かず 32 ビット切り捨てにも頼らず検証します。
よくある質問
入力が整数でない場合はどうなりますか?
浮動小数、テキスト、真偽値、欠落、非有限数は拒否され、課金されません。
JavaScript の | 演算子と同じですか?
ビット規則は同じですが、この計算機は幅無制限の整数 OR を使います。言語の | はしばしば 32 ビットに切るので、2^40 | 1 はそちらでは 1 になり、ここでは厳密なままです。
負の整数でもビットORは使えますか?
使えます。 符号付き値は 2 の補数の包括的 OR です。結果は安全整数で、二進欄は負数に先頭のマイナスを示します。
ビット単位の OR は XOR や論理和とどう違いますか?
ビット単位の OR は、どちらかの数に1がある桁を1にし、両方に1がある桁も1のままです。XOR はその共通の桁を0にし、論理和は桁ごとに比べずに、それぞれの数を一つの真偽値として扱います。
OR で権限フラグをまとめるにはどうしますか?
権限ごとに別々のビットを割り当て、OR でまとめます。読み取りを値1のビット0、書き込みを値2のビット1とすると、読み取り OR 書き込みは3になり、1つの数で両方の権限を表せます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/math/or \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"a":5,"b":3}'const res = await fetch("https://api.kit.forhosting.com/math/or", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"a": 5,
"b": 3
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/or",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"a": 5,
"b": 3
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/or", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"a":5,"b":3}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"a":5,"b":3}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/or", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"a": 5,
"b": 3
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.or",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
有限整数でないオペランドは黙って切り捨てられず、invalid_input で拒否されます。
ビットORが各ビットに対して行うこと
このエンドポイントはその定義を二つの整数に適用して合成整数を返します。
入力契約、出力の形、検証
実装は浮動小数を黙って切り下げません。5.5 を送ることは強制的な 5 ではなく誤りであり、言語のビット演算子が 0 方向に切り捨ててなお数を返す古典的不具合を防ぎます。検証失敗は課金されません。必須の整数 a と b を含む JSON オブジェクトを POST してください。各欄は JSON 数でも、先頭符号付きの十進整数文字列でも構いません。a には別名 x または left、b には y または right を受け付けますが、応答には正規名が残ります。欠落、空文字、真偽値、オブジェクト、非数値テキスト、無限大、有限整数でない値はすべて invalid_input で失敗し、問題の欄を名指しするので、フォーム描画は該当コントロールを強調できます。安全整数範囲外も、JSON の数型が正確に表せないため拒否されます。成功時は a と b をエコーし、組のビットOR整数として result を返し、5 縦棒 3 は 7 のような式文字列を含め、列規則を第二の変換なしで監査できるよう binary_a、binary_b、binary_result を付けます。算術は BigInt による幅無制限の符号付き 2 の補数 OR を使い、両入力がすでに安全範囲内なので JSON 数へ戻しても範囲内に留まります。名前付きフラグラベルが必要なら JSON を独自 UI と組み合わせてください。この能力は整数演算だけを計算します。
ビットOR計算機が役立つ場面
カテゴリフラグを一つの整数に詰めるデータ配管は、各実行系で 2 の補数幅規則を再実装する代わりに、JSON を話す任意の言語から API を呼べます。
技術的な質問
二つの整数のビットORはどう計算しますか。
整数 a と b(または別名 x/left と y/right)を送ってください。API は result = a | b、式文字列、両オペランドと答えの二進表示を返します。
ビットOR計算機の料金はいくらですか。
ブラウザ用具は無料です。API 要求は成功呼び出しあたり $0.002 の前払い KIT 残高を使い、不正入力は課金されません。