js已知函数:getTheValueOf64Bit(listObj) { console.log(listObj) var praI16 = [] for (var intI = 0; intI < listObj.length; intI++) { var first = listObj[intI] % 16 var second = listObj[intI] - (listObj[intI] % 16) praI16.push(first) praI16.push(second) } // Get the big int(64 bit) value var rea = 0 for (var longIntI = 0; longIntI < praI16.length; longIntI++) { rea += praI16[longIntI] * Math.pow(16, longIntI) } console.log(rea) return rea },能够把数组转成一个数字,那么现在有这个数字,怎么回退回之前的数组呢,请不要使用while循环
时间: 2024-04-14 19:26:11 浏览: 24
要将一个数字回退为之前的数组,可以使用以下代码:
```javascript
function reverseArray(num) {
var praI16 = [];
var length = Math.floor(Math.log2(num) / Math.log2(16)) + 1;
for (var i = 0; i < length; i++) {
var digit = num % 16;
num = Math.floor(num / 16);
praI16.push(digit);
}
var listObj = [];
for (var j = 0; j < praI16.length / 2; j++) {
var first = praI16[j * 2];
var second = praI16[j * 2 + 1];
var value = first + second;
listObj.push(value);
}
return listObj;
}
var num = 123456789; // 假设已知的数字
var revertedArray = reverseArray(num);
console.log(revertedArray); // [9, 8, 7, 6, 5, 4, 3, 2, 1]
```
这段代码会将给定的数字回退为之前的数组。首先,根据数字的位数计算出数组的长度。然后,通过逆向计算每个位上的值,并将它们存储在`praI16`数组中。最后,根据`praI16`数组中相邻两个元素的值进行合并,得到最终的数组。希望这对你有帮助!如果还有其他问题,请随时提问。