詳しい使い方
2進数計算機の使い方ガイド
学習、プログラミング、簡単な確認のために、基数変換と2進数演算をより実践的に活用するためのガイドです。
詳しい使い方
バイナリとは
バイナリはコンピュータ世界の基礎言語であり、デジタル回路とコンピュータシステムの最も基礎的なデータ表現方式でもある。 私たちの日常生活では、10進システムを使うことに慣れています。人間は10本の指を持っているが、コンピュータの内部では「オン」と「オフ」の2つの状態しか認識していないからですこれはバイナリの1と0に対応しています。 バイナリを理解することは、コンピュータの仕組みをよりよく認識するのに役立つだけでなく、プログラミング、ネットワーク通信、データ暗号化など多くの分野でかけがえのない重要な役割を持っている。
本質的には、二進は十進一の計数システムであり、十進は十進一のようである。 各ビットは0または1のみで、「ビット」 (bit) と呼ばれ、コンピュータが情報を格納して処理する最小単位です。 8つのバイナリビットは1バイト (byte) を構成し、これはコンピュータで最もよく使われるデータ単位です。 1つのファイルに1mbのサイズがあると言うと、実際には、このファイルには約100万バイト、つまり約800万バイトのバイナリビットの情報が含まれています。
バイナリの応用は私たちが想像していたよりはるかに広い。 Ipアドレスの本質は32ビットまたは128ビットのバイナリ数で、ファイル権限は3ビットのバイナリで読み取り、書き込み、実行権限を表し、画像の各ピクセルの色はバイナリコードで格納されます音楽もビデオもバイナリストリームに変換されて転送され、保存されます。 デジタルの世界で私たちが見ているすべてのことは、本質的に数え切れないほどの0と1で構成されていると言えます。
進数間の転換原理
異なる進数間の転換は計算機科学の基礎技能であり、これらの転換方法を身につけることで、様々なデータ形式をより柔軟に処理することができる。 最も一般的な4つの進数システムは、バイナリ (基数2)、8進 (基数8)、10進数 (基数10) 、16進 (基数16) であるそれぞれの特徴と応用シーンがあります。
バイナリから10進数への変換は最も基本的な変換です。 私たちは右から左に各桁に番号をつけて、0から始めて、各桁の数字に2の対応する乗を掛けて、最後に加算します。 例えば、バイナリ1011、計算過程は、1 × 2 × 0 × 2 × 1 × 2 × 1 × 2 _ = 8 0 2 1 = 11である。 この過程はビット値の原理を体現しています。各ビットはその重みを持っています。位置が左にあるほど重みが大きくなります。
10進数をバイナリに変換するには、2つを除いて余法を取る必要があります。 私たちは10進数を2で割って、商が0になるまで毎回の余りを記録し、すべての余りを下から上に並べるとバイナリ結果が得られます。 十進数13を例にとると、13 ÷ 2 = 6余1、6 ÷ 2 = 3余0、3 ÷ 2 = 1余1、2 = 0余1で、下から上に向かって余数を読み取ると1101が得られる。 この方法は少し面倒に見えるが、論理ははっきりしており、手作業で計算するのに適している。
8進と16進の存在は主にバイナリの表現を簡略化するためである。 3桁のバイナリ数は0-7を表すことができ、ちょうど1桁の8進数に対応し、4桁のバイナリ数は0-15を表すことができます16進数(0-9とA-F) に対応します。 そのため、バイナリ数を3桁または4桁のグループで直接グループ変換することができ、便利です。 例えば、バイナリ11010110は、3桁のグループで右から左に110 | 101 | 10(前の補完0が010になる) で、8進に変換すると326; 4桁のグループで1101 | 0110です16進になるのはD6です。
バイナリの基本演算
バイナリ加算はすべてのバイナリ演算の基礎で、ルールは簡単に覚えやすい: 0 = 0、0 = 1、0 = 1、1 = 10 (進位)。 これは私たちがよく知っている十進法とよく似ていますが、逢二進一は逢十進一ではありません。 例えば1011 0110を計算し、右から左へ1 = 1、1 = 10 (0進1を書く) 、0 1 = 10 (0進1を書く) 1 1 = 10 (0進1と書く) 、最終結果は10001です。 実際、コンピュータ内部の加算器はこの簡単なルールを回路で実現する。
バイナリ減算は補数によって加算を実現できます。これはコンピュータの中で非常に巧みな設計です。 しかし、直接計算するときは、0-0 = 0、1-0 = 1、1 = 0、0-1 = 1 (借用が必要) というルールに従う。 0-1に遭遇したとき、左の上位から1を借りる必要があり、借りた1は現在の位置で10 (つまり10進数の2) に相当する。 例えば、1010-006、右から左:0-1の借用位が10-1 = 1、0-1(前に1を借りた) になって借用し、以下のようになる最終的に0111を得る。
バイナリ乗算と割り算の原理は10進数に似ていますが、0と1しかないので、かえって簡単です。 乗算では、被乗数と乗数の各ビットを掛け合わせ (実際には0または一定) 、位置に応じて対応する桁数を左に移動し、最後にすべてを加算すればよい。 法則を除いては、試商法を採用しています。被中数が足りないので、通算数を減らそうとします。 これらの演算は手作業で行うのは面倒だが、コンピュータの基礎となる演算ロジックを理解するのに非常に役立つ。
ビット演算の応用シーン
ビット演算はバイナリビットを直接操作する演算で、プログラミングに広く重要な応用がある。 最も基本的なビット演算には、AND (と) 、OR (または) 、XOR (異または) 、NOT(非) などが含まれ、それらの実行効率は極めて高いハードウェアレベルで直接完成するため、複雑な計算ロジックは必要ありません。
AND演算のルールは、2桁が1の場合に結果が1、そうでなければ0になる。 これは、特定のビットを抽出するマスク操作によく使用されます。 例えば、1つの数が奇数か偶数かを知りたいのですが、この数と1をAND演算するだけで、結果が1なら奇数、0なら偶数です。 これは、奇数の最下位は必ず1で、偶数の最下位は必ず0であるためです。 権限制御システムでは、AND演算は、ユーザーが権限を持っているかどうかをチェックし、ユーザーの権限値と特定の権限マスクをAND演算するために使用され、結果はゼロ以外の場合にその権限があることを示します。
OR演算のルールは、2桁のうち1つが1で、2桁が0で、結果が0である。 特定のビットを設定するためによく使われます。 たとえば、構成ファイルやシステム設定では、既存の設定に影響を与えずに、OR演算を使用して新しいオプションや権限を追加できます。 1バイトの各ビットがスイッチを表していると仮定すると、3ビット目のスイッチをオンにするには、元の値と0000100をOR演算するだけで、他のビットは変更されません。
XOR (異または) 演算のルールは、2桁が同じ0で、異なるのは1です。 1つの数ともう1つの数XORが2回になるという不思議な特性があります。 この特性に基づいて、XORは簡単な暗号解読、データ検証、配列中の唯一の重複しない数字を見つけるなどに使用できる。 データ転送では、XORはエラー検出によく使われ、送信側はデータをXOR演算してチェックコードを生成し、受信側は同じ方法で検証し、データが転送中に改ざんされると検証に失敗する。
左シフトと右シフト演算は、2を掛けたり、2で割ったりするべき乗を迅速に実現します。 左シフトnビットは2を掛けたn乗に相当し、右シフトnビットは2で割ったn乗に相当します。 このような演算は、従来の乗除法よりもはるかに高速であり、グラフィック処理、ゲーム開発、組み込みシステムのプログラミングで多く使用されています。 例えば、1つの数の4倍を素早く計算するには、2桁左に移動するだけです。1つの数が2のべき乗であるかどうかを素早く判断し、1を引いたAND結果が0かどうかを確認すればいいです。
この計算機の使い方
私たちのバイナリ計算機は2つの主要な機能モードを提供しています。進数変換とバイナリ演算です。それぞれのモードは入念に設計されています。複雑なバイナリ計算を簡単で直感的にします。 プログラミング学習者、コンピュータ専攻の学生、基礎的なデータを処理するエンジニアであっても、このツールは便利なコンピューティング体験を提供します。
進数変換モードでは、まず入力数値の進数タイプを選択します。バイナリ、8進、10進数、16進数のいずれかです。 次に、入力ボックスに変換する数値を入力すると、入力フォーマットの正確性がリアルタイムで検証されます。たとえば、バイナリは0と1、16進数は0-9とA-Fしか入力できません。 計算ボタンをクリックすると、計算機はすぐにこの数値がすべての4種類の進数で表示され、それぞれの進数は異なる色のカードで表示され、はっきりしている。 このようにして、同じ個数が異なる進制でどのようになっているかを一度に見ることができ、学習効果よりも優れている。
バイナリ演算モードは、加算、減算、乗算、減算、3ビット演算 (AND、OR、XOR) の7つの一般的な演算をサポートしています。 2つのバイナリ数をオペランドとして入力する必要があります。システムは自動的に不正な文字をフィルタして、0と1しか入力できないようにします。 演算子を選択して計算をクリックすると、結果はバイナリと10進数の両方で表示され、完全な演算式も表示され、理解と検証が容易になります。 これはビット演算の論理を学ぶのに非常に役立ち、実際に操作することで様々な演算ルールの理解を深めることができる。
計算機はURLパラメータの同期をサポートしています。つまり、計算ごとにwebサイトに記録され、ブラウザの戻るボタンで履歴計算を見ることも、計算結果のリンクを他の人に共有することもできますこれは共同学習や問題討論で特に実用的である。 リセットボタンは、すべての入力をワンクリックで空にして、新しい計算を開始します。 インターフェイス全体は応答設計を採用し、携帯電話、タブレット、パソコンで完璧に表示でき、いつでもどこでもバイナリ計算ができる。
バイナリのプログラミングにおける実際の応用
プログラミングの世界では、バイナリはどこにでもあります。私たちは通常、バイナリでコードを書くのではありませんが、そのアプリケーションを理解することで、より効率的でエレガントなプログラムを書くことができます。 現代のプログラミング言語は豊富なビット演算子を提供し、それらを使いこなすことでコードの実行速度を大幅に向上させ、同時にメモリ使用量を減らすことができる。
状態管理はビット演算の最も典型的な応用の一つである。 ゲームキャラクターを想像すると、走っているかどうか、ジャンプしているかどうか、攻撃しているかどうか、無敵かどうかなど、複数の状態があるかもしれない。 従来の方法では、複数のブール変数を格納する必要がありましたが、ビット演算では整数が必要で、各ビットは状態を表します。 チェックステータス用AND、設定ステータス用OR、キャンセルステータス用AND NOT、切り替えステータス用XOR。 これはメモリを節約するだけでなく、状態を判断して修正する速度もずっと速く、ゲーム開発、グラフィックインターフェースのプログラミングの中で広く採用されています。
アルゴリズムの最適化では、ビット演算は予想外の性能向上をもたらす。 特異性を判断し、二つの変数の値を交換し、絶対値を求め、配列の中で唯一重複しない数字を見つけ、バイナリの中で1の個数を計算するなどの古典的な問題は、ビット演算に基づく巧みな解法がある。 例えば、2のべき次を判断するには、従来の方法ではループや対数演算が必要で、ビット演算で1行のコードで処理できます。「n & (n-1) = = 0」です。 これらの技術はコンテストのプログラミングと性能に敏感な場面で特に価値がある。
ネットワークプログラミングでは、ipアドレス、サブネットマスク、ポート番号などはバイナリ形式で存在する。 バイナリを理解することは、ネットワーク構成をよりよく分析し、サブネット分割を行い、CIDR表現を理解するのに役立ちます。 データ転送プロトコル設計では、よく使われるビットフィールドは、さまざまなフラグとオプションをコンパクトにエンコードし、1バイトで8つのスイッチ状態を表すことができ、プロトコルのオーバーヘッドを大幅に削減します。 バイナリコードルールを理解することは、ネットワークデバッグ、プロトコル分析に不可欠である。
グラフィック画像処理の分野はバイナリから離れられない。 色値は通常RGBまたはRGBAフォーマットで表され、各成分は8ビットを占め、ビット演算によって色成分を効率的に抽出して組み合わせることができ、様々な混色効果を実現する。 ゲーム開発では、衝突検出、ビットマップフォントレンダリング、質感圧縮などの技術が多く使われている。 バイナリの原理を理解すると、グラフィックシステムの仕組みをより深く理解し、よりパフォーマンスの良いグラフィックコードを書くことができます。
一般的な進制対照参考表
異なる進数間の対応関係をよりよく理解するために、ここではいくつかの一般的な数値の様々な進数での表現を示します。 比較観察を通して、私たちは進制転換の法則を発見し、異なる進制の特徴をより早く把握することができる。
数字0-15は学習進制の基礎範囲で、この範囲では、バイナリは0000から1111、8進は0から17、10進数は0から15 16進数は0からFまでです。 特に、十六進のうち、10-15はそれぞれA-Fで表されていることに注意してください。これは、すべての文字を1文字に保つためです。 例えば、10進数の10、2進数は1010、8進数は12、16進数はA 10進数の15、2進数は1111、8進数は17、16進数はFである。
2のべき次はコンピュータの中で特に重要です。メモリサイズ、ファイルサイズ、パケットサイズなどは2のべき次です。 1kb = 1024バイト (2 MB) 、1MB = 1024KB(2 MB) 、1GB = 1024MB(2 MB)。 バイナリでは、2のべき次の表現は特に簡潔で、1桁だけが1で、残りはすべて0である。 例えば、16(2 ⁴) はバイナリで10000、256(2 ⁸) は100000000です。 この特性は、判断と計算2のべき次を非常に簡単で効率的にする。
インターネット関連の応用では、よく見られる数値には特別な意味がある。 255 (16進FF、バイナリ11111111) はシングルバイトの最大値で、サブネットマスクとRGBカラー値に頻繁に現れる。 127.0.0.1このバックリングアドレスは、127がバイナリに変換されたのは01111111です。 ポート番号の範囲は0-65535で、16ビットのバイナリ数に対応します。 これらの一般的な数値のバイナリ表現を理解することは、ネットワークプロトコルと構成をよりよく理解するのに役立ちます。
日常的なプログラミングでは、8、16、32、64という数字は、一般的なデータ型のビット数であるため、特によく見られます。 1バイト8ビット、1ワード16ビット、1整数32ビット、1長整数64ビット。 これらの数値のバイナリ表現は、1:8が1000、16が10000、32が100000、64が1000000である。 これらの対照関係を覚えておくと、メモリの最適化、データ構造の設計時に、より賢明な選択をすることができます。
進制変換のテクニックと方法
いくつかの転換技術を身につけることで、私たちは手作業で計算する時に、より速く、より正確になり、進制の本質に対する理解を深めることができます。 電卓の補助はあるが、変換原理を理解し、基本的な技術を身につけることは依然として重要で、特に学習と試験の場面では。
バイナリと8進、16進の間の変換には簡単な方法があります。 2 = 8のため、3桁のバイナリ数はちょうど1桁の8進数に対応しています。バイナリ数を右から左の3桁ごとにグループに分けるだけです。そして、各グループを対応する8進数に変換すればよい。 逆に、八進から二進に変換するのも簡単で、一桁八進数は三桁の二進数に展開すればいい。 例えば、八進375,7は111、5は101に対応し、展開は011111101で、先頭の0を除いて11111101を得る。
同じように、2 ⁴ = 16、4桁のバイナリ数は16進数に対応するからです。 変換時に右から左に4ビットごとにグループを分け、グループごとに0-Fに変換すればよい。 この方法は10進数中継を通過するよりずっと速い。 例えば、バイナリアブ101は、1 | 1011 | 0101を構成し、16進制に対応するのは1b 5である。 0-15に対応するバイナリと16進数を熟練して把握することは、高速変換の鍵である。 小さなカードを作って暗唱することができ、すぐに覚えられる。
10進数と他の進数を変換するときは、いくつかの基準値を覚えておくと便利です。 例えば、10(十進数) = 2 (バイナリ) = 12 (8進数) = A (16進数) 100 (10進数) = 1100100 (バイナリ) = 144 (8進数) = 64 (16進数) 、128 (10進数) = 10000000 (バイナリ) = 200 (8進数) = 80 (16進数)。 これらの基準があれば、近い数値に遭遇するとすぐに見積もることができるか、中間ステップとして計算を簡略化することができる。
大きな数値には分解法が採用できる。 数値をいくつかの変换しやすい部分に分解し、それぞれ変换してからマージします。 例えば、十進数300は、256 32 8 4に分解でき、それらのバイナリはそれぞれ100000、100000、1000、100で、加算して100101100になる。 この方法は、2のべき次が変換しやすいという特徴を利用して、複雑な割り算を避け、計算時に特に実用的である。
ビット演算の実用テクニック
ビット演算は難解に見えますが、よく使われる技術を身につけることでプログラミングの道具になります。 これらのテクニックの多くは先輩プログラマの経験からまとめられており、様々なプログラミングコンテストや実際のプロジェクトで検証され、勉強と記憶に値する。
パリティを判断する最も簡単な方法は、最下位をチェックすることです。「n & 1 = = 1」は奇数、「n & 1 = = 0」は偶数を表します。 これは、ビット演算がハードウェアレベルで直接行われるため、モデル演算「n % 2」を使用するよりもはるかに高速です。 同様に、1つの数が2のべき次で割り切れるかどうかを判断し、ビットで演算することもできます 'n & (k-1) = = 0' は、nがkで割り切れるかどうかを判断します (kは2のべき乗でなければなりません)。 これは、ハッシュテーブルの実装、メモリの整列などのシナリオでよく使用されます。
一時的な変数を使わずに2つの変数を交換すると、「a ^ = b; b ^ = a; a ^ = b;'。 この技術は現代のコンパイラではあまり意味がないが (コンパイラは一時的な変数を最適化する) 、その原理を理解することは異や性質を深く把握するのに役立つ。 異またはもう一つの重要な性質があります。すべての数が異なるか、自分が0に等しいか、任意の数が違うか、0が自分に等しいかです。 この性質を利用して、配列の中で唯一重複していない数字を素早く見つけることができ、すべての数が異なっているか、一度に1対になっているのは相殺され、残りは答えである。
2のべき乗を素早く計算します。左シフトnビットは2 × 2に相当し、右シフトnビットは2で割ることに相当します。 例えば、3 × 16を計算すると、「3 <4」と書くことができ、100/8を計算すると、「100 >> 3」と書くことができる。 性能に敏感な場面では、変位できるものは乗除法を使わない。 しかし、負の数に対する右シフトの処理は言語によって異なる可能性があり、あるものは算術右シフト (符号ビットを保持) 、あるものは論理右シフト (0を補う) であることに注意してください。
特定の位置付けを抽出して設定する技術は、ハードウェアプログラミングとプロトコル処理でよく使われる。 N番目のビット (0からカウント):'(num >> n) & 1' を抽出し、n番目のビットを1とする: 'num | = (1 <n)'、n番目の桁をゼロにします。'num & = ~(1 <n)' 、n番目の桁を反転します。'num ^ = (1 <n)'。 これらの操作の組み合わせは、RGB色の各成分を抽出するなど、複雑なビットフィールド操作を実現し、色値を異なる桁数に右シフトして0xFFとAND演算する。
バイナリとデータストレージ
バイナリを理解することは、コンピュータデータの保存方法を把握する上で重要です。 すべてのデータはコンピュータで最終的にバイナリ形式に変換されて保存され、異なる種類のデータには異なるコードルールがあり、これらのルールを理解することはプログラムのパフォーマンスを最適化するのに役立ちますデータ損失と精度の問題を回避します。
整数の格納は比較的簡単で直接的である。 符号なし整数は直接バイナリで表現され、8ビットは0-255,16ビットを表すことができ、0-65535を表すことができ、以下同様である。 符号付き整数は通常補数で表され、最上位は符号ビット、0は正、1は負。 補数の巧みな点は、加算器が符号付きと符号なしを区別する必要がなく、バイナリ加算で処理すればよいことで、ハードウェア設計が大幅に簡素化されたことである。 例えば、8桁の符号付き数は、範囲が-128から127で、-1の補数は11111111で、1を加えてになり、ちょうど0で、正負の数の演算を完璧に処理した。
浮動小数点数の記憶は複雑になり、IEEE 754規格を採用して、記号ビット、指数部分、端数部分に分けた。 32ビット単精度浮動小数点数、1ビット記号、8ビット指数、23ビット端数64ビット倍精度浮動小数点数、1ビット記号、11ビット指数、52ビット端数。 この表現方法は、広い範囲の数値を限られた桁数で表すことができますが、精度の損失があります。 そのため、0.1 0.2は0.3ではありません。0.1と0.2は正確にバイナリで表現できないからです。 金融計算などの正確な小数が必要な場面では、通常、固定点数や専門的な10進数タイプが使われる。
文字コードもバイナリベースです。 アスキーコードは7ビットで128文字、拡張アスキーは8ビットで256文字を表します。 中国語などの文字はもっと多くの桁を必要とし、GB2312は2バイトで、UTF-8は可変長コードを採用し、英語の文字は1バイトで、中国語は通常3バイトである。 ユニコードは文字ごとにユニークなコードポイントを割り当て、異なるエンコード方式(UTF-8、UTF-16、UTF-32) でバイナリストレージに変換します。 文字コードの原理を理解することは、多言語テキストを正しく処理し、文字化け問題を避けるのに役立つ。
データ圧縮の本質は、データ中の冗長な情報を減らし、同じ内容をより少ないビットで表現することである。 ZIP、PNGなどのロスレス圧縮は、ホフマン符号化などのアルゴリズムによって、一般的なデータに短いバイナリコードを割り当て、まれなデータに長いコードを割り当て、全体的にストレージスペースを減らす。 JPEG、MP3のような破損圧縮は、人間の感覚が目立たない情報を捨て、数学的変換でデータを周波数領域に変換し、重要な周波数成分を保持し、副次的な成分を捨てる。 これらの技術は、バイナリデータを細かく操作することに基づいている。
バイナリを学ぶための実用的なアドバイス
バイナリを学ぶのは一蹴ではなく、理論と実践を結びつけて、漸進的に深く理解する必要がある。 以下は実践的に検証された学習方法とアドバイスで、より効率的にバイナリ知識を身につけるのに役立つことを願っています。
基礎から基礎を固めることが大切です。 複雑なビット演算技術の学習を急いではいけません。まず自分が熟練していることを確認してください。 毎日いくつかの転換練習をして、小さい数字から次第に範囲を増やして、簡単な演算から複雑な演算に移行することができます。 いくつかの学習カードを作って、表に十進数を書いて、裏に二進、八進、十六進を書いて、いつでも記憶を見て、数感を育成する。
理論学習はプログラミング実践と結びつけなければならない。 練習しないだけでは学べない。プログラミング言語で進制変換関数を実現して、自分で簡単なバイナリ計算機を書いて、様々なビット演算機能を実現しようとしている。 実際のプログラミングでは、ビット演算で集合操作を実現し、ビットマスクでスイッチ状態を管理し、2のべき乗を乗算する代わりにシフト操作でビット演算を意識的に使用する。 実践の中で何度も応用してこそ、これらの知識を本当に理解し、覚えていることができる。
実際のシステムでのバイナリの応用に注目する。 画像ファイルのフォーマットを検討して、BMP、PNGがどのようにバイナリでピクセルをエンコードするかを理解するTCP、UDPなどのネットワークプロトコルのメッセージ形式を見て、各フィールドがどのようにビットで表現されているかを理解するオペレーティングシステムのファイル権限を学び、rwxがどのように3桁のバイナリで表現されているかを理解する。 これらの実際の応用は抽象的なバイナリ知識を具体的にすることができて、学習の興味をも奮い立たせることができます。
道具を上手に使うが、道具に頼らない。 私たちのバイナリ計算機は良い補助ツールで、自分の手作業計算を検証し、様々な計算の法則を探求することができますが、過度に依存しないでください。 自分で計算してみて、計算機で検証して、間違いを発見したときは、間違いがどこにあるのか、なぜ間違っているのかを深く考えなければならない。 計算機で練習問題を作って、自分で完成してから答えを出すことができます。 これにより、計算速度が向上し、理解を深めることができ、自分の知識の弱点を発見することができる。
よくある質問
バイナリを学習して使用する過程で、多くの場合、疑問や問題が発生します。 ここでは、最もよく見られる質問とその解答を整理して、学習の道の障害を一掃するのに役立つことを願っています。
** なぜコンピュータは10進数ではなくバイナリを使用するのですか?** これは主に電子部品の物理的特性によって決まる。 電気回路の2種類の安定状態 (高レベルと低レベル、対応1と0) は実現しやすく、耐ノイズ能力が強いが、10の異なるレベル状態を正確に区別することは非常に困難で、間違いやすい。 バイナリで回路設計を簡素化することもでき、すべての演算は和、または非などの基本論理ゲートで実現できる。
** バイナリは小数を表すことができますか?** はい、小数点以下の各桁は2の負のべき乗を表します。 例えば、2進数は10101で、整数部分は5で、小数部分は0.5.125 = 0.625で、合わせて5.625です。 しかし、多くの10進数は2進数として正確に表現できないことに注意してください。これが浮動小数点数の精度問題の根源です。
** 負数のバイナリ表現はどのようなものですか?** コンピュータでは、通常、補数は負数を表します。 補数のルールは、正の補数はそのバイナリ表現で、負の補数はその絶対値がビットごとに逆加算されることである。 例えば、8桁の符号付き数、-5の補数は11111011です。 補数の巧みなところは加減算が統一的に処理できることで、専用の減算回路は必要ない。
** ビット演算は実際の項目で多く使われていますか?** 確かにたくさん使われています。 ゲーム開発では、状態管理はビット演算を大量に使用するネットワークプログラミングでは、プロトコル解析、ipアドレス計算はビット操作から離れられないデータベースでは、ビットマップインデックス、ブルームフィルタはビット演算に基づいています暗号学では、様々な暗号アルゴリズムに複雑なビット操作が必要である。 ビット演算を理解することは上級プログラマになるための必須の道である。
よくある質問
このツールは何に向いていますか?
プログラミング学習、コンピューターの基礎練習、授業での確認、1つの整数が各基数でどう表されるかの素早い検証に最適です。
変換モードと計算モードの違いは何ですか?
変換モードは1つの値を異なる基数で表し直すもので、計算モードは2つの2進整数に四則演算やビット演算を適用するものです。
計算モードで0と1しか入力できないのはなぜですか?
このモードの目的は、2進整数の挙動、特に2進数の算術とビット論理を直接示すことにあるためです。
割り算で小数が表示されないのはなぜですか?
このページは整数学習のシナリオを想定して作られているため、割り算は小数ではなく整数の商を返します。