【发布时间】:2012-06-16 21:34:02
【问题描述】:
我有一些代码接受表示十六进制数字的字符串 - 实际上是十六进制颜色 - 并添加它们。例如,添加 aaaaaa 和 010101 会得到输出 ababab。
但是,我的方法似乎不必要地冗长和复杂:
var hexValue = "aaaaaa";
hexValue = "0x" + hexValue;
hexValue = parseInt(hexValue, 16);
hexValue = hexValue + 0x010101;
hexValue = hexValue.toString(16);
document.write(hexValue); // outputs 'ababab'
连接0x后的十六进制值还是一个字符串,所以我得把它改成数字,然后我可以加,然后我得改回来 转换成十六进制格式!如果我要添加的数字是以十六进制字符串开头,或者您考虑到我在这一切开始之前从十六进制颜色中删除了#,则还有更多步骤。
当然有更简单的方法来进行这种简单的十六进制计算!为了清楚起见,我并不是说像(parseInt("0x"+"aaaaaa",16)+0x010101).toString(16) 这样将所有内容放在一行上或使用速记 - 我的意思是实际上做的操作更少。
是否有某种方法可以让 javascript 停止对其所有数学运算使用十进制并改用十六进制?还是有其他方法可以让 JS 更轻松地使用 hex?
【问题讨论】:
-
“让 Javascript 停止对其所有数学运算使用十进制并改用十六进制” - 不可以。 JS 两者都不使用。它实际上是二进制的。您在这里谈论的是字符串。
标签: javascript variables hex