10進数を16進数に変換 (JavaScript)
JavaScriptで10進数を16進数に変換する方法
JavaScriptでは、10進数を16進数に変換するために、toString()
メソッドを使用します。このメソッドは、任意の基数で数値を文字列に変換します。16進数に変換するには、基数を16に設定します。
具体的な方法
const decimalNumber = 255; // 10進数の数値
const hexadecimalNumber = decimalNumber.toString(16);
console.log(hexadecimalNumber); // 出力: ff
理解
console.log(hexadecimalNumber)
: 変換された16進数の値をコンソールに出力します。toString(16)
: 10進数の数値を16進数に変換し、その結果を文字列として返します。
他の基数への変換
同様に、他の基数への変換も可能です。例えば、2進数に変換するにはtoString(2)
を使用します。
const binaryNumber = decimalNumber.toString(2);
console.log(binaryNumber); // 出力: 11111111
桁数の調整
必要に応じて、桁数の調整を行うこともできます。例えば、常に2桁の16進数を取得するには、padStart()
メソッドを使用します。
const paddedHexadecimalNumber = hexadecimalNumber.padStart(2, '0');
console.log(paddedHexadecimalNumber); // 出力: 00ff
基本的な変換
const decimalNumber = 255; // 10進数の数値
const hexadecimalNumber = decimalNumber.toString(16);
console.log(hexadecimalNumber); // 出力: ff
const paddedHexadecimalNumber = hexadecimalNumber.padStart(2, '0');
console.log(paddedHexadecimalNumber); // 出力: 00ff
const binaryNumber = decimalNumber.toString(2);
console.log(binaryNumber); // 出力: 11111111
複数の数値の変換
const decimalNumbers = [10, 20, 30];
const hexadecimalNumbers = decimalNumbers.map(number => number.toString(16));
console.log(hexadecimalNumbers); // 出力: ['a', '14', '1e']
関数化
function decimalToHexadecimal(decimalNumber) {
return decimalNumber.toString(16);
}
const hexadecimalNumber = decimalToHexadecimal(255);
console.log(hexadecimalNumber); // 出力: ff
ビット演算を用いた方法
この方法は、10進数を2進数に変換し、その後、2進数を16進数に変換します。
function decimalToHexadecimal(decimalNumber) {
let binaryNumber = "";
while (decimalNumber > 0) {
binaryNumber = (decimalNumber % 2) + binaryNumber;
decimalNumber = Math.floor(decimalNumber / 2);
}
let hexadecimalNumber = "";
for (let i = 0; i < binaryNumber.length; i += 4) {
const binaryChunk = binaryNumber.substring(i, i + 4);
const decimalChunk = parseInt(binaryChunk, 2);
hexadecimalNumber += decimalChunk.toString(16);
}
return hexadecimalNumber;
}
文字列操作を用いた方法
function decimalToHexadecimal(decimalNumber) {
const hexadecimalCharacters = "0123456789ABCDEF";
let hexadecimalNumber = "";
while (decimalNumber > 0) {
const remainder = decimalNumber % 16;
hexadecimalNumber = hexadecimalCharacters[remainder] + hexadecimalNumber;
decimalNumber = Math.floor(decimalNumber / 16);
}
return hexadecimalNumber;
}
内蔵関数Number.prototype.toString()の利用
これは最もシンプルで一般的な方法です。
function decimalToHexadecimal(decimalNumber) {
return decimalNumber.toString(16);
}
javascript hex number-formatting