JavaScript では、16 進数値の 4 バイトの「n」個を文字列データ型として配列で受け取ります。すべての「n」個の数値に対してビット単位の OR 演算を実行し、最終的な値を同じ形式 (つまり、16 進数値と文字列データ型) で提供する必要があります。「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 が問題の原因を説明してくれました。誰でも私の問題の解決策を提供できますか?