LayaBox七天登錄狀態存儲之JS中二進制與十進制轉換

一般對於遊戲來說,七天登錄是常備運營活動,可以提升很大一部分留存。

本身七天登錄功能大致實現相當簡單,數據傳輸格式無非:

{day:statu}或者整一個數組裏面存取7個數據保存每天是否領取狀態,

但是如果採用二進制數據豈不是傳輸速率更便捷:

如:

7天都未領取:0000000 = 0

第一天已領取:0000001 = 1  

第二天已領取:0000011 = 3

第三天已領取:0000111 = 7

第四天已領取:0001111 = 15

第五天已領取:0011111 = 31

第六天已領取:0111111 =  63

第七天已領取:1111111 = 127

其中,數字狀態爲:1:已領取,0:已領取

服務端傳輸數據結構體

message login7day{

     int day = 1;

}

day對應0,1,3,7,15,31,63,127

let d = day.toString(2);

客戶端只需要拿到對應數據,對day進行轉爲二進制求出1的個數,然後刷新界面即可。

 

補充:

十進制轉二進制:

let num = 100;

console.log(num.toString(2));

二進制轉十進制:

let num = 1100100;

console.log(parseInt(num, 2));

附:

parseInt(num,8);   //八進制轉十進制
parseInt(num,16);   //十六進制轉十進制
parseInt(num).toString(8)  //十進制轉八進制
parseInt(num).toString(16)   //十進制轉十六進制
parseInt(num,2).toString(8)   //二進制轉八進制
parseInt(num,2).toString(16)  //二進制轉十六進制
parseInt(num,8).toString(2)   //八進制轉二進制
parseInt(num,8).toString(16)  //八進制轉十六進制
parseInt(num,16).toString(2)  //十六進制轉二進制
parseInt(num,16).toString(8)  //十六進制轉八進制

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章