JavaScript 如何将十进制转换为十六进制
对于任何使用低级语言或汇编语言进行编程的计算机程序员来说,将十进制转换为十六进制是一项基本任务。在Web开发中,我们使用颜色,并且通常使用十六进制颜色代码来表示它们。在JavaScript中,由于ECMA提供的内置函数和方法,将十进制转换为十六进制非常简单。在本文中,我们将讨论多种将十进制转换为十六进制的方法,并给出相应的示例。
- 使用toString()方法
-
使用自定义函数
使用toString()方法
顾名思义,toString()方法用于将数字转换为字符串,javascript中的每个对象都有toString()方法。该方法接受基数作为参数(可选)。
语法
Number.toString( Radix )
在这里,基数范围是2至36。其中,2表示二进制,8表示八进制,16表示十六进制。
返回值
此方法返回提供的基数值下的字符串作为数字。
要将十进制转换为十六进制,需要以下步骤:
- 将toString()方法应用于数字。
-
将16作为toString方法的参数。
示例
在此示例中,我们使用toString方法将十进制转换为十六进制。
<html>
<body>
<h2>Convert decimal to hex using toString() method</h2>
<p id="input"> Decimal: </p>
<p id="output"> Hex: </p>
<script>
let num = 146541;
document.getElementById("input").innerText += num;
let hex = "";
hex = num.toString(16).toUpperCase();
// Print the values
document.getElementById("output").innerText += hex ;
</script>
</body>
</html>
使用自定义逻辑
尽管JavaScript提供了内置方法将十进制转换为十六进制,但我们也可以实现自己的逻辑将十进制转换为十六进制。以下是具体步骤:
- 创建一个包含所有十六进制字符的变量,即“0123456789ABCDEF”
-
循环,直到十进制数大于0
-
在每次迭代中,通过将十进制数除以16取余数
-
根据余数所在位置获取十六进制字符,这样就获得了适当的十六进制字符
-
将所有这些十六进制字符连接起来
-
最后,在每次迭代中将十进制数除以16
示例
在此示例中,我们通过制作一个自定义函数将十进制转换为十六进制。
<html>
<body>
<h2>Convert decimal to hex using custom logic</h2>
<p id="input"> Decimal: </p>
<p id="output"> Hex: </p>
<script>
// Define the decimal number to be converted
let num = 116565;
document.getElementById("input").innerText += num;
// Define the hexadecimal characters used for mapping
let hexChars = "0123456789ABCDEF";
// Define variables for the result and the original number
let result = "";
let temp = num;
// Convert the decimal number to a hexadecimal string
while (num > 0) {
let remainder = num % 16;
result = hexChars[remainder] + result;
num = Math.floor(num / 16);
}
document.getElementById("output").innerText += result ;
</script>
</body>
</html>