0

0

0

修罗

站点介绍

只有了解事实才能获得真正的自由

位运算符在开发中的妙用

修罗 2021-12-15 1913 0条评论 其他

首页 / 正文

前后端规定一个二进制位代表一个数据类型,通过此数字的二进制位来获取、判断数据。

可以运用在参数传递异常复杂的项目,本例只给出一个参数,接口还有几十个参数;

后端给出接口:

/api/?choose=${number}&...

如下图接口文档:choose给出值,若传递3则请求赛事=1匹配=2的数据,组合使用。

1639513077235.png

组合参数

choose给出值转为二进制分析:

1的二进制00000001

2的二进制00000010

4的二进制00000100

由给出的choose值1、2、4...可知,choose即二进制位从右到左有值的体现,choose组合可以使用|运算符;按位或:位数上一个为1即全部为1;

例:我们需要1和2和4的数据

1 | 2 | 4

# 二进制表示
00000001 
|
00000010
|
00000100

得出结果 00000111,十进制为7,后端接口:

let choose = 1 | 2 | 4
// choose = 7
let url = /api/?choose=${choose}` 

后端返回数据的情况

后端返回数据会给出flags属性,flags的值即由choose组合而成,而前端需要判断是否有某个数据(如choose=2的数据);按位与:位数上两个为1即为1

例:前端判断是否有2(choose为2的数据)

if(3 & 2) > 0 {有2的数据,可以执行对2数据的操作}

# 二进制表示
00000011 
&
00000010

得出结果 00000010,十进制为2,即大于0;

1639518159915.png

评论(0)


最新评论

  • 1

    1

  • 1

    1

  • -1' OR 2+158-158-1=0+0+0+1 or 'TKCTZnRa'='

    1

  • 1

    1

  • 1

    1

  • 1

    1

  • 1

    1

  • @@5Qa2D

    1

  • 1

    1

  • 1

    1

日历

2025年09月

 123456
78910111213
14151617181920
21222324252627
282930    

文章目录

推荐关键字: Linux webpack js 算法 MongoDB laravel JAVA jquery javase redis