Oh MyUtils

進数変換器 - 2進数, 8進数, 10進数, 16進数 変換 オンライン

2進数、8進数、10進数、16進数間で即座に数値変換。インタラクティブなビット可視化とビット演算計算機。

よくある質問

進数変換ツールとは何ですか?

進数変換ツールは、異なる記数法(基数)間で数値を変換するツールです。コンピュータで最も一般的な基数は、2進数(0と1を使用)、8進数(0-7を使用)、10進数(0-9を使用)、16進数(0-9とA-Fを使用)です。例えば、10進数の255は2進数で11111111、8進数で377、16進数でFFです。

この進数変換ツールの使い方は?

4つの入力フィールド(2進数、8進数、10進数、16進数)のいずれかに数値を入力すると、他のすべてのフィールドが変換された値で即座に更新されます。ビットの視覚化を使用して個々のビットを確認し、操作できます。ビットをクリックしてオン・オフを切り替えられます。

データは安全ですか?サーバーに送信されますか?

すべての数値変換とビット操作は、JavaScriptを使用して100%ブラウザで実行されます。データはサーバーに一切送信されません。このツールは正確な計算のためにブラウザ内蔵のBigIntを使用します。

2の補数とは何ですか?符号付きモードはどのように機能しますか?

2の補数は、コンピュータが2進数で負の整数を表現するための標準的な方法です。符号付きモードでは、最上位ビット(左端)が符号ビットとして機能します:0は正、1は負です。例えば、8ビット符号付きモードでは11111111は-1(255ではなく)を表し、10000000は-128を表します。

ビット演算とは何ですか?いつ便利ですか?

ビット演算は数値の個々のビットを直接操作します。AND(&)は特定のビットのマスキング、OR(|)はビットの設定、XOR(^)はビットの切り替え、NOT(~)はすべてのビットの反転、シフト演算子(<<、>>)は2の累乗での乗算・除算に使用されます。

16進数はなぜA-Fの文字を使うのですか?

16進数(基数16)には16個の固有の数字が必要です。10進数システムは0-9の10個の記号しか提供しないため、16進数では10から15の値を表すためにAからFの文字を使用します。各16進数の桁はちょうど4つの2進ビット(ニブル)に対応するので、FF = 11111111 = 255です。

適切なビット幅の選び方は?

作業するデータ型に基づいてビット幅を選択してください:バイトとASCII文字には8ビット(範囲0-255)、短い整数には16ビット(範囲0-65535)、標準整数、IPv4アドレス、カラー値には32ビット(範囲0-42.9億)、大きな整数、メモリアドレス、タイムスタンプには64ビット。迷ったら32ビットを使用してください。

コード例

// Number base conversion in JavaScript

// Convert between bases
function convertBase(number, fromBase, toBase) {
  const decimal = BigInt(parseInt(number, fromBase));
  return decimal.toString(toBase).toUpperCase();
}

console.log(convertBase('FF', 16, 2));     // "11111111"
console.log(convertBase('11111111', 2, 16)); // "FF"
console.log(convertBase('255', 10, 8));     // "377"

// Bitwise operations
const a = 0b11001010, b = 0b10110001;
console.log(`AND: ${(a & b).toString(2).padStart(8, '0')}`);
console.log(`OR:  ${(a | b).toString(2).padStart(8, '0')}`);
console.log(`XOR: ${(a ^ b).toString(2).padStart(8, '0')}`);
console.log(`NOT: ${((~a) & 0xFF).toString(2).padStart(8, '0')}`);

// Two's complement
function toTwosComplement(value, bits) {
  if (value >= 0) return value;
  return (1 << bits) + value;
}
console.log(toTwosComplement(-1, 8).toString(2)); // "11111111"

関連ツール