JavaScript中如何将十进制转换为十六进制?
在本文中,我们将学习如何在 JavaScript 中轻松地将十进制数转换为其等效的十六进制数。 我们将研究一些需要执行此操作的真实场景。
数字toString() 方法
要在 JavaScript 中将十进制转换为十六进制,请对十进制调用 toString() 方法,将 16 作为基数参数传递,即 num.toString(16)。 toString() 方法将以十六进制形式返回数字的字符串表示形式。
例如:
const num = 60;
const hex = num.toString(16);
console.log(hex); // 3c// Use parentheses when calling toString() directly
const hex2 = (60).toString(16);
console.log(hex2); // 3c
Number toString() 方法返回数字的字符串表示形式。 如果第一个参数指定了基数,则数字以该基数表示。 我们传递 16 以使用基数 16,这是十六进制基数。
十六进制使用 16 个符号来表示数字:
0 到 9 表示值 0 到 9
a 到 f(A 到 F)表示值 10 到 16。字母不区分大小写,因此 3C2b 与 3c2B 的值完全相同。
在数字文字上调用 toString()
如果直接对数字文字调用 toString(),请确保将其括在括号 (( )) 中或使用两个点 (..before toString():
// Use parentheses
const hex2 = (60).toString(16);
console.log(hex2); // 3c// Use double dots
const hex3 = 50..toString(16);
console.log(hex3); // 32
如果你只使用一个不带括号的点,JavaScript 解析器会将其视为数字文字的一部分——小数点——而不是成员访问运算符。
console.log(40.); // 40
console.log(20.); // 20
所以会出现错误,因为在成员名称之前没有成员访问运算符。
// SyntaxError
console.log(40.toString(16));// SyntaxError
console.log(20.toString(16));
因此,您将数字括在括号中,以便它们之外的所有内容都被视为与数字分开。
console.log((40).toString(16)); // 28console.log((20).toString(16)); // 14
或者您添加第二个点,它将被视为成员访问运算符。
console.log(40..toString(16)); // 28console.log(20..toString(16)); // 14
用例:将 RGB(A) 转换为十六进制
将十进制值转换为十六进制值的一种常见用途是将 RGB 颜色代码转换为其等效的十六进制值。 我们可以这样做:
function decToHex(dec) {return dec.toString(16);
}function padToTwo(str) {return str.padStart(2);
}function rgbToHex(r, g, b) {const hexR = padToTwo(decToHex(r));const hexG = padToTwo(decToHex(g));const hexB = padToTwo(decToHex(b));return `#${hexR}${hexG}${hexB}`;
}console.log(rgbToHex(255, 128, 237)); // #ff80edconsole.log(rgbToHex(195, 151, 151)); // #c39797console.log(rgbToHex(16, 16, 16)); // #0f0f0f
我们创建了一个可重用的 rgbToHex() 函数来将 RGB 代码转换为其等效的十六进制代码。
我们使用 padToTwo() 函数将十六进制代码填充为两位数,例如 f -> 0f。
在将 R、G 和 B 的十进制值转换为十六进制表示后,我们将它们连接到一个以 # 字符为前缀的字符串中,以形成十六进制颜色代码。
我们可以修改该函数以使其也接受 RGBA 值,其中 A 是用于指定颜色不透明度的百分比值(介于 0 和 1 之间)。 A 将是十六进制颜色代码的前两个字符,其值介于 00(0 或 0%)和 ff(255 或 100%)之间。
function decToHex(dec) {return dec.toString(16);
}function padToTwo(str) {return str.padStart(2);
}function rgbToHex(r, g, b, a) {const hexR = padToTwo(decToHex(r));const hexG = padToTwo(decToHex(g));const hexB = padToTwo(decToHex(b));// Set "a" to 1 if not specifiedconst aAbsolute = Math.round((a ?? 1) * 255);const hexA = padToTwo(decToHex(aAbsolute));return `#${hexA}${hexR}${hexG}${hexB}`;
}console.log(rgbToHex(255, 128, 237)); // #ffff80ed
console.log(rgbToHex(195, 151, 151, 0.5)); // #80c39797
console.log(rgbToHex(16, 16, 16, 0.69)); // #b0101010
JavaScript中如何将十进制转换为十六进制?相关推荐
- 如何在JavaScript中将十进制转换为十六进制
如何在JavaScript中将十进制值转换为等效的十六进制值? #1楼 如果要将数字转换为RGBA颜色值的十六进制表示形式,我发现这是以下几个技巧中最有用的组合: function toHexStri ...
- 十六进制转换html,如何使用JavaScript将十进制转换为十六进制?
JavaScript中有很多内置函数可以帮我们进行数(进)制转换.那么给定一个十进制数字,如何将数字从十进制转换为十六进制?下面本篇文章就来给大家介绍一个使用JavaScript将十进制转换为十六进制 ...
- 十进制转换为十六进制-八进制-二进制的进制转换计算
进制换算在工作中是一项必不可少的技能,例如在RTC中得到的数据为十六进制的,但是我们使用时用的是十进制.这就免不了进行进制之间的换算.进制之间的换算可以手动计算进行换算,也可以编写程序进行换算.这里主 ...
- JavaScript | 将十进制转换为十六进制,反之亦然
Sometimes we need to convert an integer value which is in decimal format to the hexadecimal string i ...
- qt中十进制转换为十六进制和二进制字符串,以及二进制字符串转十进制,十六进制字符串
概述 直接上代码,记录一下,方便日后使用: 示例一 将十进制转换为二进制和十六进制字符串: int num = 23; QString str = QString::number(num,16);// ...
- 十进制转换为十六进制(转载过来的)
要把1610转换成16进制,采用什么方法好?为什么有的是先转换成2进制?具体方法和步骤怎么样? 我来帮他解答 输入内容已经达到长度限制 还能输入9999字 插入图片删除图片插入地图删除地图插入视频视频 ...
- 十进制转换为十六进制
问题: 计算机系统中经常会用到十六进制,那么如何将十六进制转换为十六进制呢? 例如: 十进制123转换为十六进制数为7B,1234转换为十六进制为4D2. 代码实现: public class D ...
- java中如何将十进制转换为二进制
一.进制是什么? 进制也就是进位计数制,是人为定义的带进位的计数方法. 对于任何一种进制-X进制,就表示每一位上的数运算时都是逢X进一位. 十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一, ...
- Python中ASCII转十六进制、C中BCD转十进制、十六进制学习记录
ASCII.BCD转十六进制 ASCII转十六进制 转换规则 Python实现 BCD转十进制.十六进制 BCD码的优点 BCD码分类 各种BCD码的特点 转换规则 ASCII转十六进制 转换规则 A ...
最新文章
- OpenGL如何处理多个纹理
- 部署及配置Lync Server 2013存档功能
- MSSQL 判断表是否存在的两种方法
- sql无法写入mysql_无法通过写入mysql数据库pandas.to\u sql使用sqlalchemy,但不能通过没有pandas的sqlalchemy...
- 一种真正意义上的Session劫持
- chrome vue插件_不容错过的 Chrome 插件推荐合集-开发者必备篇
- mysql 正则匹配 捕获组_常用正则表达式 捕获组(分组)
- html中只能上传文件word,HTML文件表单,接受Word文档(HTML file form, accept Word documents)...
- 存储空间的动态分配与释放
- 执行cmd并获得结果_用JAVA执行CMD命令备份PG数据库,解决需要口令的问题
- UNIX环境高级编程(第2版)第11-17章
- 2006技术盘点 多项无线技术被高估
- OFDM载波间隔_NBloT上行子载波
- 上传图片方法到免费服务器
- python | 秦九昭算法详细介绍
- android 让应用恢复前台显示_Android将后台应用唤起到前台的方法
- 手把手教你用Java获取IP归属地
- 【人工智能与信息社会】题库
- IOS使用Charts
- 数据库DDL、DML分别是什么
热门文章
- 一个图帮你解决 @Autowired出现红色波浪线
- 2-STM32开发板(Cortex-M3)和exynos4412(Cortex-A9)之间的区别和联系
- 从关键字~C语言 — 期末考,考研,面试中那些你不得不知道的C语言关键字细节
- Java虚拟机相关知识点
- CDMA在卫星移动通信中的应用(转)
- 《滚石》评出最伟大100首英文歌(转)
- uniapp 支付(vx、zfb、app、内嵌H5)
- 导入matlab某两列数据,将文本文件中的数据导入到matlab中一例(wwh)
- history`pushState和window`onpopstate实现tab切换效果
- 阿里巴巴神马搜索一面