進数変換器 - 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"