我将在 JavaScript 的数组中接收“n”个四字节十六进制值作为字符串数据类型。我必须对所有“n”数字执行按位或运算,并以相同的格式提供最终值(即十六进制值和字符串数据类型)。我已将我的代码作为“n”=2 的示例发布。
var TTL_ON = ["0xFF208D32","0x5E2C3301"];
TTL_ON="0x"+decimalToHex(eval(TTL_ON.join("|")),8);
WScript.Echo("TTL_ON "+TTL_ON);
function decimalToHex(Decimal, Padding) {
if (decimalToHex.arguments.length != decimalToHex.length) {
return;
} else {
var hex = Number(Decimal).toString(16).toUpperCase();
Padding = typeof(Padding) === "undefined" || Padding === null ? Padding = 2 : Padding;
while (hex.length < Padding) {
hex = "0" + hex;
}
return hex;
}
}
预期输出为“0xFF2CBF33”
我收到的输出是“0x0-D340CD”。
感谢 Alex.k 解释了问题的根源。谁能为我的问题提供解决方案?