非常牛逼的二进制开关

论坛 期权论坛 脚本     
匿名技术用户   2020-12-22 10:13   29   0

在前后端控制某项状态(状态开关非常多)时,可运用二进来控制,前后台协调好哪一位控制怎么样的一个状态;
例如:第一位 ‘0’ 用来控制不显示,‘1’控制显示;
第二位 ‘0’用来控制字体颜色(默认颜色),‘1’控制显示红色
等等。。。

//二进制转换
 binary(num, Bits) {
                 var d = parseInt(num / 2)
                 var resArry = [num % 2]
                 for (; d != 0;) {
                      d = parseInt(d / 2)
                   resArry.push(d % 2)
        }
                 if (Bits) {
                       for (var r = resArry.length; r < Bits; r++) {
                            resArry.unshift(0) 
            }
            
        }
            return resArry.join().replace(/,/g, '')
    }
    //改变开关状态
    switch(a,b,c){
        //需要转换的十进制
        let Binary = this.binary(a, 32);
        //改变第几位的开关,b是第几位,c传过来的开关,1或者0
        let Binary_arr = Binary.split('');
        let newBinaryArr = Binary_arr.splice(b, 1, c)
        console.log(Binary);
        let newBinary = Binary_arr.join("");
        //转换为十进制
        let Decimal_system = parseInt(newBinary, 2);  
        return Decimal_system
    }

a — 表示后台返回的十进制数字,
b — 表示更改第几位的开关,
c — 表示开关的状态,是0还是1;
最后返回十进制 在传给后台;

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP