利用2进制转换减小存储大小

image.png

//得到领取奖励数组
//目前只有2组奖励
//服务器是按位给的值
//一下括号内代表2进制
//2组奖励的情况 普通1(0001)、精英2(0010)、如果都有就是3(0011)
//3组奖励的情况 普通1(0001)、精英2(0010)、精英圣令4(0100), 如果都有就是7(0111)
//服务器使用or(按位或)做加法 使用xor(按位异或)做减法 比如 1|2=3 3^2=1
//而客户端只需要拆解成2进制字符串 然后获得该位是0还是1 判断是否已完成
//该函数用于拆解工作
//return [1, 0, 0]
public getReceiveAwardArrForType(type) {
let binaryStr = Number(type).toString(2)
// GameHelp.ccLog("FF binaryStr", binaryStr);
let putongSign = Number(binaryStr[binaryStr.length-1]?binaryStr[binaryStr.length-1]:0)
let jingyingSign = Number(binaryStr[binaryStr.length-2]?binaryStr[binaryStr.length-2]:0)
let shengSign = Number(binaryStr[binaryStr.length-3]?binaryStr[binaryStr.length-3]:0)
let resultArr = [putongSign, jingyingSign, shengSign]
// GameHelp.ccLog("FF resultArr", resultArr);
return resultArr
}

你可能感兴趣的:(利用2进制转换减小存储大小)