如何解决获取完整的十六进制整数
我正在使用 parseInt 将十六进制代码转换为 16 字节,颜色编号
parseInt('ef7f31',16) // 15695665
上述输出 15695665
是预期的。
当十六进制的 RGB 部分全部为零时,问题就出现了,然后它会缩短它。例如这种颜色#0098d9。
parseInt('0098d9',16) // 39129
上例中的十六进制将红色全为零,这使得输出为 39129
。如果我像这样将该输出转换回十六进制 (39129).toString(16)
它将返回 98d9
没有零在第一位。我可以添加零但可能不知道哪个位置
所以我的问题是,在将十六进制转换为 int 后如何让它显示完整数字
解决方法
一种方法是使用 String.prototype.padStart()
(39129).toString(16).padStart(6,"0")
//"0098d9"
由于只会忽略 MSB 末尾的零,因此在转换回十六进制字符串时填充前导零足以恢复 RGB 表示。
或者您可能希望采用更系统的方法,例如分别存储 R
、G
、B
值,并在转换回十六进制字符串时将它们连接起来。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。