2進数または10進数のいずれかを編集すると、相互にリアルタイム双方向同期されます
2進数から10進数への高精度変換・計算ツール。符号付き2の補数、固定小数点(2進小数)、ホーナー法による途中計算ステップの展開に完全対応。
2進数または10進数のいずれかを編集すると、相互にリアルタイム双方向同期されます
2進数を10進数へ高精度に変換する計算機・変換ツール。符号付き2の補数、固定小数点(小数ビット)、1の補数、符号と絶対値に対応し、ステップごとの計算過程と重み付け展開式を分かりやすく解説。
最上位ビット(MSB)から最下位ビット(LSB)までの2の累乗を表す連続した2進数ビット列。計算量 O(n) のホーナー法(Horner's rule)多項式累積演算により10進数へ評価展開されます。IEEE 754 小数点(基数点)、標準プレフィックス「0b」、視覚的デリミタ(半角スペース等)に対応。
演算オーバーフローの上限、符号ビット位置、ゼロ拡張制約を決定する対象プロセッサのレジスタ語長境界。53ビットを超える値は、IEEE 754 仮数部の丸め誤差や切り捨てを防ぐため、任意精度 BigInt に自動切り替えされます。
負数の数学的解釈を規定する表現規約。「2の補数(Two's Complement)」はMSBに負の重み -2^(n-1) を割り当て、「符号なし(Unsigned)」は全ビットを 2^n - 1 までの正の絶対値として扱い、「符号と絶対値(Sign-Magnitude)」は最上位ビット(n-1)を極性判定専用として予約します。
基数点(小数点)の右側に位置する小数部ビット列。2の負の整数乗(0.5、0.25、0.125、0.0625など)として評価されます。有限桁で割り切れない循環2進小数は、指定されたレジスタの仮数部深度に合わせて適切に丸め・切り捨て処理されます。
複数オクテットからなる2進数ワードのバイト直列化順序。ビッグエンディアン(RFC 791 ネットワークバイトオーダー)はMSBをバイトオフセット0に配置し、リトルエンディアン(x86-64 / ARM NEON)はLSBを先頭に格納するため、ネットワークパケット解析時にはバイトスワップ(並べ替え)処理が必要となります。
2進数ビット列を視覚的に判読しやすい4ビット(ニブル)または8ビット(バイト/オクテット)ごとにグループ化する表示設定。数値の数学的値を変更することなく、視認性を高めてパリティ検査を迅速化し、手作業での転記ミスや桁の入れ替わりを防止します。
nビットの2の補数表現系では、表現可能な数値範囲が -2^(n-1) から +2^(n-1) - 1 までという非対称な構造を持ちます(例:8ビットでは -128 〜 +127、32ビットでは -2,147,483,648 〜 +2,147,483,647)。ゼロ(00000000)が非負数(0以上の領域)に割り当てられるため、最小の負数(-2^(n-1))に対応する正の整数が存在しません。そのため、8ビットの符号付きレジスタで -128 を正負反転(ネゲート)したり abs(-128) を計算しようとすると、即座に算術オーバーフロー例外が発生するか、ラップアラウンドによって再び -128 に戻ってしまいます。コンパイラや暗号化ルーチン(Web Crypto API の実装におけるコンスタントタイム剰余演算など)では、符号反転の前にビット幅を上位の語長境界へ符号拡張(例:int8_t から int16_t へ拡張)することで、この「オーバーフローの崖」を回避しています。
ある進法において既約分数が有限小数として表せるのは、分母の素因数がその基数の素因数のみで構成される場合に限られます。2進数(基数2)の素因数は2のみであるため、分母に素因数5を含む一般的な10進小数(例:0.1 = 1/(2*5) や 0.2 = 1/5)は、2進数展開すると無限循環小数(0.0001100110011..._2)になります。これを IEEE 754 規格の64ビット浮動小数点レジスタに格納する際、仮数部が53ビットで切り捨てられるため、0.1000000000000000055511151231257827021181583404541015625 という本質的な丸め誤差が不可避的に混入します。金融決済や暗号計算では2進浮動小数点変換を決して使用せず、有理数スケーリング(分子・分母を BigInt で保持する方式)や固定小数点表現(BCD / Decimal)を採用してください。
ビットシフトを利用して符号付き2進整数を2の累乗で除算する場合、論理右シフト(JavaScript の >>>、x86 ASM の SHR)を実行すると最上位ビット(MSB)に 0 が注入されます。これにより符号ビットが破壊され、負の整数が突然巨大な正の符号なし整数へと化けてしまいます(例:32ビット空間で -8 >>> 1 は 2,147,483,644 に評価されます)。対照的に、算術右シフト(C / Java / JavaScript の >>、x86 ASM の SAR)は空いたビット位置に MSB の値を複製(符号拡張)します。ただし、算術右シフトは負の無限大方向への床関数丸め(floor(N / 2^k))となるため、-7 >> 1 は -4 と評価される点に注意してください(一般的な10進整数のゼロ方向切り捨て除算 -7 / 2 = -3 とは結果が異なります)。
IETF 標準規格(RFC 791 IPv4、RFC 2460 IPv6、TCP/UDP)で規定されるネットワークバイトオーダー(Network Byte Order)は、最上位バイトを最も低いメモリアドレスに配置するビッグエンディアン(Big-Endian)です。一方、現代の主要クライアント環境(x86-64 や ARM Apple Silicon)のプロセッサはネイティブでリトルエンディアン(Little-Endian)を採用しています。例えば、HTTPS ポート番号443を表す16ビット2進数「00000001 10111011」を受信した際、バイト順序変換関数(ntohs() や DataView.prototype.getUint16(offset, false))を通さずに直接ホストレジスタにデシリアライズすると、バイト列が反転して「10111011 00000001」(10進数 47,873)として誤認識され、接続ルーティングの失敗を引き起こします。
ナイーブな2進数・10進数変換アルゴリズムは、ビットごとに個別の累乗計算(b_i * 2^i の総和)を行うため、nビットの文字列に対して計算量が O(n^2) に増大し、巨大なビットストリーム(暗号化用の 4096ビット RSA 鍵など)を処理する際にシングルスレッドのブラウザ JavaScript エンジンで CPU スロットリングや UI フリーズを引き起こします。最適なアルゴリズムはホーナー法(Horner's method)です。アキュムレータを 0 に初期化し、MSB から LSB へ向かって accumulator = (accumulator << 1) | bit を1回の走査(O(n))で順次計算します。クライアント側のサンドボックス環境において、この O(n) ビット演算累積とネイティブの BigInt を組み合わせることで、ブラウザのイベントループをブロックすることなく、また機密性の高い暗号鍵バイナリを外部ネットワークへ送信することなく、ミリ秒未満での高速処理が保証されます。
符号付き2の補数演算では、最上位ビット(MSB)が符号フラグとして機能します。例えば、8ビットの正の整数「01111111」(+127)を入力した際、パーサーが先頭のゼロを不要な余白として自動削除してしまうと、7ビットの「1111111」に縮退します。これを7ビットの符号付きレジスタ枠で評価すると、左端の 1 が符号ビットとして解釈され、+127 が -1(-64 + 32 + 16 + 8 + 4 + 2 + 1 = -1)へと誤判定されてしまいます。解決策:対象とするアーキテクチャの語長ビット幅(8、16、32、または64ビット)を明示的に指定してレジスタのゼロパディングを強制し、正の極性を示す先頭ゼロが欠落しないよう保護してください。
標準の ECMAScript Number プリミティブは IEEE 754 倍精度浮動小数点数規格に準拠しており、仮数部には52ビット(暗黙の先頭ビットを含めて53ビット)しか割り当てられていません。parseInt(str, 2) を使用して53ビットを超える2進文字列(64ビットメモリアドレスや SHA-256 のステートブロックなど)をパースすると、Number.MAX_SAFE_INTEGER(2^53 - 1 = 9,007,199,254,740,991)を超えた下位ビットが勝手に丸められ、静かな数値破壊(Bit Drift)が発生します。解決策:53ビットを超える2進数列は、BigInt('0b' + cleanBinaryStr) や BigInt によるホーナー法累積演算を用いて直接ネイティブの BigInt にパースしてください。仮数部の精度損失ゼロで任意のビット幅を安全に処理できます。
有理数である10進小数を2進固定小数点に変換する際、分母に2の累乗以外の因数を持つ数値は無限循環小数になります(例:10進数の 0.1 や 0.3333...)。有理数の境界範囲を追跡せずに、任意の位置で打ち切られた2進小数の正確な10進数表現を求めようとすると、見た目の精度に乖離が生じます。解決策:厳格な小数精度ガード(例:32ビットまたは64ビットの仮数部深度)を設定し、IEEE 754 の最近接偶数丸め(Round-to-Nearest-Even)規則を適用するとともに、有理数ペア(分子・分母を BigInt の有理数比 P/Q として保持する演算)を併用することで、数学的な厳密性を維持してください。
逆アセンブルダンプ、Wireshark のパケットキャプチャ、メモリインスペクタなどから生の2進文字列を貼り付けると、言語特有のプレフィックス(「0b」「0B」)、16進エスケープ、バイト区切り文字(半角スペース、アンダースコア、ハイフン、コロン)、改行コードなどが混入しがちです。標準的な数値変換関数はこれらを非数値トークンとして弾き、NaN や構文エラー(SyntaxError)を返します。解決策:数値変換処理の直前に、入力データを決定論的な正規表現サニタイザー(s.replace(/^0b/i, '').replace(/[^01.]/g, ''))に通してください。構文ノイズを除去し、小数点の単一性を計算量 O(n) で検証することで、安全な数値変換が可能になります。
2進数を10進数に変換するには、各桁のビット(0 または 1)に対し、最下位ビット(右端のLSB、インデックス0)から始まる2の累乗(位取りの重み)を掛け合わせ、その総和を求めます。計算式は Decimal = ∑ (b_i × 2^i) です。例えば、2進数 11010110_2 を10進数に変換する場合:(1 × 2^7) + (1 × 2^6) + (0 × 2^5) + (1 × 2^4) + (0 × 2^3) + (1 × 2^2) + (1 × 2^1) + (0 × 2^0) = 128 + 64 + 0 + 16 + 0 + 4 + 2 + 0 = 214 となります。また、ホーナー法(多項式累積法)を用いると左端から右端に向かって計算量 O(n) で算出できます。初期値を 0 とし、各ビットごとに「現在のアキュムレータ × 2 + ビットの値」を順次計算していくことで、高速かつステップごとに10進数値が求まります。
2の補数表記では、最上位ビット(MSB)が -2^(n-1) という負の位取りの重みを持ち、残りの n-1 個のビットは通常の正の重みを維持します。計算式は Decimal = (-b_{n-1} × 2^{n-1}) + ∑_{i=0}^{n-2} (b_i × 2^i) です。例えば、8ビットの符号付き2進数 11111000_2 の場合、(-1 × 2^7) + (1 × 2^6) + (1 × 2^5) + (1 × 2^4) + (1 × 2^3) + 0 + 0 + 0 = -128 + 64 + 32 + 16 + 8 = -8 と計算されます。負の10進数を2の補数の2進数に戻すには、その絶対値(正の数)の全ビットを反転(0と1を反転)させ、1を加算します。
符号付きと符号なしの根本的な違いは、最上位ビット(MSB)の解釈方法にあります。「符号なし(Unsigned)」は全 n ビットを非負の重みとして扱い、表現範囲は 0 から 2^n - 1 となります。一方「符号付き(Signed)」は2の補数を用いてMSBを負の符号・重みとして解釈し、表現範囲は -2^(n-1) から +2^(n-1) - 1 となります。例えば、8ビットのビット列「11111111」は、符号なしでは 255 と評価されますが、符号付き(2の補数)では -1 を表します。ソフトウェアやレジスタ設計においてこの符号規約を取り違えると、重大な算術アンダーフローやラップアラウンド不具合の原因となります。
小数点(基数点)を含む2進数を10進数に変換するには、小数点より左側の整数部を2の正の累乗(2^0, 2^1, ...)で合計し、小数点より右側の小数部を2の負の累乗(2^-1 = 0.5、2^-2 = 0.25、2^-3 = 0.125、2^-4 = 0.0625 など)で計算して両者を足し合わせます。計算式は Decimal = ∑ (b_i × 2^i) + ∑ (b_{-j} × 2^{-j}) です。例えば 1011.1101_2 の場合、整数部は 8 + 0 + 2 + 1 = 11、小数部は (1 × 0.5) + (1 × 0.25) + (0 × 0.125) + (1 × 0.0625) = 0.8125 となり、合算すると10進数で 11.8125 となります。
コンピュータが10進数ではなく2進数を採用している理由は、物理的な半導体トランジスタが「導通・ON(高電圧=論理1)」と「遮断・OFF(接地/0V=論理0)」という2つの明確な状態において、圧倒的なノイズマージン(耐ノイズ性能)と電気的曖昧さゼロの安定性を持つためです。もし10進数で動作する電子回路を設計しようとすると、0.3V、0.6V、0.9V といった微細な10段階の電圧閾値を正確に識別しなければならず、熱雑音、素子の経年劣化、浮遊容量による電圧降下によって壊滅的な誤動作を引き起こします。これに対し、2値スイッチングはブール代数および CMOS ロジックゲートと完全に調和し、極めて信頼性の高い超大規模集積回路(VLSI)を実現できます。
JavaScript の parseInt() は数値を IEEE 754 倍精度浮動小数点数(Number 型)として変換します。この形式では整数の厳密な仮数部精度が53ビット(Number.MAX_SAFE_INTEGER = 2^53 - 1 = 9,007,199,254,740,991)までに制限されています。53ビットを超える64ビットの2進整数をパースすると、下位11ビットが表現可能な最も近い浮動小数点数へと勝手に丸められ、静かなデータ破損(情報落ち)が生じます。64ビットや128ビットの2進数を高精度に完全変換するには、任意精度をネイティブサポートする BigInt('0b' + binaryString) を使用する必要があります。
HEXコードを不透明度・アルファ透過率付きのRGBAカラーコードへ即座に変換。3桁・6桁・8桁HEX、一括バッチ変換、CSSコード出力に対応。
売上高や粗利に応じた歩合給・営業インセンティブ、累進料率(ティア)、代理店・会社配分、源泉徴収税を瞬時に試算。手取り総報酬の予測や目標ノルマ達成に必要な売上高の逆算に対応。
重み付け確率配分、重複防止の除外モード、ハードウェア暗号学的CSPRNG乱数、チーム自動編成に対応した高精度ルーレット・抽選決定ツール。
実日数計算に基づく単利・ローン完済総額・満期元利合計を高精度に算出。借入元金・金利・期間の逆算や、複利再投資とのコスト差分・インフレ購買力比較に対応。
自動車ローンの借り換えによる毎月の返済削減額、総利息の軽減効果、諸費用回収の損益分岐点を瞬時にシミュレーション。金利・期間・手数料を比較して最適な返済計画を算出します。
カルボーネン法および田中法を用いて、あなたの最大心拍数と5段階の運動強度ゾーンを算出。脂肪燃焼やVO2 maxトレーニングを科学的に最適化します。