Browse Source

把一个2的幂改成位操作

pull/1/head
枫谷剑仙 2 years ago
parent
commit
efc1ad01bc
1 changed files with 6 additions and 6 deletions
  1. +6
    -6
      script.js

+ 6
- 6
script.js View File

@@ -740,7 +740,7 @@ class PlayerDataCard {
this.awoken = e.next().value[1];
let parsedLatent = this.parseLatent(e.next().value[1]);
this.latentMaxCount = parsedLatent.latentCount;
this.latentBlocksNum = parsedLatent.latentBlocksNum;
this.latent = this.deleteRepeatLatent(parsedLatent.latent.reverse());
this.assistIndex = e.next().value[1];
@@ -778,23 +778,23 @@ class PlayerDataCard {
let latentNumber = BigInt(number);
const obj = {
latent: [],
latentCount: 6,
latentBlocksNum: 6,
};
//console.log("原始数字",latentNumber.toString(2));
const latentVersion = latentNumber & 0b111n; //记录版本,111是用几位来做记录,也就是最多7位
latentNumber >>= 3n; //右移3位
//console.log("读取潜觉记录位数",latentNumber.toString(2));
const changeLatentCount = Boolean(latentNumber & 1n); //1时就是开孔了
const changeLatentBlocksNum = Boolean(latentNumber & 1n); //1时就是开孔了
latentNumber >>= 1n; //右移1位
//console.log("读取潜觉格子数是否改变",latentNumber.toString(2));
if (changeLatentCount)
if (changeLatentBlocksNum)
{
obj.latentCount = Number(latentNumber & 0b1111n);
obj.latentBlocksNum = Number(latentNumber & 0b1111n);
latentNumber >>= 4n;
//console.log("读取潜觉格子数",latentNumber.toString(2));
}
const rightbnum = latentVersion > 6n ? 7n : 5n; //右移的距离
const getbnum = 2n ** rightbnum - 1n; //逻辑与的数字 //latentVersion > 6 ? 0b1111111n : 0b11111n;
const getbnum = (1n << rightbnum) - 1n; //逻辑与的数字 //latentVersion > 6 ? 0b1111111n : 0b11111n;
while (latentNumber > 0n)
{
obj.latent.push(Number(latentNumber & getbnum));


Loading…
Cancel
Save