【フロントエンドエンジニア必見】JavaScriptで10進数を16進数に変換する方法
JavaScriptで10進数を16進数に変換する方法
toString(16) メソッドを使用する
これは、10進数を16進数に変換する最も簡単な方法です。toString()
メソッドに 16
を引数として渡すことで、10進数を16進数の文字列に変換できます。
const decimalNumber = 100;
const hexadecimalNumber = decimalNumber.toString(16);
console.log(hexadecimalNumber); // 出力: 64
Number.prototype.toString(16) メソッドを使用する
上記の例と同じように、Number.prototype.toString(16)
メソッドを使用して、10進数を16進数に変換することもできます。
const decimalNumber = 100;
const hexadecimalNumber = Number.prototype.toString.call(decimalNumber, 16);
console.log(hexadecimalNumber); // 出力: 64
ビット演算を使用して、10進数を16進数に変換することもできます。これは、より複雑な方法ですが、より詳細な制御が必要な場合に役立ちます。
function decimalToHexadecimal(decimalNumber) {
let hexadecimalNumber = "";
let remainder = decimalNumber;
while (remainder > 0) {
const digit = remainder & 0xf;
hexadecimalNumber = digit.toString(16) + hexadecimalNumber;
remainder = remainder >>> 4;
}
return hexadecimalNumber;
}
const decimalNumber = 100;
const hexadecimalNumber = decimalToHexadecimal(decimalNumber);
console.log(hexadecimalNumber); // 出力: 64
ライブラリを使用する
BigNumber.js
や math.js
などのライブラリを使用して、10進数を16進数に変換することもできます。これらのライブラリは、より多くの機能とオプションを提供します。
const BigNumber = require("bignumber.js");
const decimalNumber = 100;
const hexadecimalNumber = new BigNumber(decimalNumber).toString(16);
console.log(hexadecimalNumber); // 出力: 64
補足
- 16進数は、0から9までの数字と、AからFまでの文字を使用して表されます。
- 16進数の文字列は、
0x
で始まる必要があります。 - 上記の例では、10進数を16進数に変換する方法を示していますが、これらの方法は他の基数にも使用できます。
const decimalNumber = 100;
const hexadecimalNumber = decimalNumber.toString(16);
console.log(hexadecimalNumber); // 出力: 64
const decimalNumber = 100;
const hexadecimalNumber = Number.prototype.toString.call(decimalNumber, 16);
console.log(hexadecimalNumber); // 出力: 64
例 3: ビット演算を使用する
function decimalToHexadecimal(decimalNumber) {
let hexadecimalNumber = "";
let remainder = decimalNumber;
while (remainder > 0) {
const digit = remainder & 0xf;
hexadecimalNumber = digit.toString(16) + hexadecimalNumber;
remainder = remainder >>> 4;
}
return hexadecimalNumber;
}
const decimalNumber = 100;
const hexadecimalNumber = decimalToHexadecimal(decimalNumber);
console.log(hexadecimalNumber); // 出力: 64
const BigNumber = require("bignumber.js");
const decimalNumber = 100;
const hexadecimalNumber = new BigNumber(decimalNumber).toString(16);
console.log(hexadecimalNumber); // 出力: 64
これらの例は、10進数を16進数に変換する方法を理解するのに役立ちます。必要に応じて、これらの例を自分のニーズに合わせて変更することができます。
10進数を16進数に変換する他の方法
ループを使用する
function decimalToHexadecimal(decimalNumber) {
const hexadecimalDigits = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"];
let hexadecimalNumber = "";
let remainder = decimalNumber;
while (remainder > 0) {
const digit = remainder % 16;
hexadecimalNumber = hexadecimalDigits[digit] + hexadecimalNumber;
remainder = Math.floor(remainder / 16);
}
return hexadecimalNumber;
}
const decimalNumber = 100;
const hexadecimalNumber = decimalToHexadecimal(decimalNumber);
console.log(hexadecimalNumber); // 出力: 64
function decimalToHexadecimal(decimalNumber) {
const hexadecimalDigits = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"];
if (decimalNumber === 0) {
return "";
}
const remainder = decimalNumber % 16;
const digit = hexadecimalDigits[remainder];
const quotient = Math.floor(decimalNumber / 16);
return decimalToHexadecimal(quotient) + digit;
}
const decimalNumber = 100;
const hexadecimalNumber = decimalToHexadecimal(decimalNumber);
console.log(hexadecimalNumber); // 出力: 64
テンプレートリテラルを使用する
const decimalNumber = 100;
const hexadecimalNumber = `${decimalNumber.toString(16)}`;
console.log(hexadecimalNumber); // 出力: 64
const decimalNumber = 100;
const hexadecimalNumber = decimalNumber.toLocaleString(undefined, { radix: 16 });
console.log(hexadecimalNumber); // 出力: 64
これらの方法は、上記で紹介した方法よりも複雑ですが、より詳細な制御が必要な場合に役立ちます。
javascript hex number-formatting