十六进制颜色码的按位补码总是返回6个字符吗?



在Javascript中,是否有一种方法可以使十六进制颜色的按位补码始终返回6个字符串?

例如,('0xff0537' ^ '0xffffff').toString(16)生成一个4个字符的字符串'fac8'

但是,('0x00adeb' ^ '0xffffff').toString(16)返回一个6个字符的字符串'ff5214'

您可以通过添加前导1,转换为字符串,最后删除第一个字符,使其始终为7个字符,使其再次为6。

> (1<<24 | '0xff0537' ^ '0xffffff').toString(16).substring(1)
'00fac8'

我最终这样解决了这个问题:

return ('000000' + (('0xffffff' ^ '0x00adeb').toString(16))).slice(-6);

最新更新