美文网首页
&按位与

&按位与

作者: monvhh | 来源:发表于2018-05-06 22:38 被阅读0次

作为一个前端转node开发的童鞋,每次碰到&这个操作符,都要纠结很久,这是什么意思?

先将两个数字转换成二进制,按位与,得出每位的值(1或0),将这个结果转换为十进制便是最后结果。

这篇文章主要是想说按位与的利与弊。(都是我推测的,毕竟都是前人写的代码)
以项目常用场景为对输入进行分类来说。分类是什么意思,作为判断条件

function func( variable ){
  if(variable & 4 = 4){
    ……
  }
……
}


1.速度
2.可扩展,比如variable是一个订单状态的话,某些状态属于某一种类型。后续订单状态增加,但还属于某种类型,就可以不用改代码了。
3.可交叉,分类可交叉。
variable & 4 = 4variable & 8 = 8variable & 16 = 16 …… 想同时满足多少个条件,这个variable都可以只是一个数字,而不是用逗号分隔的几个数字或字符串,或好几个标识符。


1.不直观,可读性非常差,无法追溯。
2.上面这个问题导致了,前人的代码这样写,后人都不敢改,因为反推variable的值是不可穷举的

总的来说来是利大于弊,在合适的场景下。

相关文章

  • 按位与 按位或

    (一)按位与& 两位全为1,结果才为10&0=0;0&1=0;1&0=0;1&1=1例如:51&5 即0011 0...

  • &:按位与、|:按位或、^:按位异或、~:按位取反

    主要针对于整数运算(转换成二进制)。 &:按位与:对应位都是1 则返回 1;只要有一个不是1 则返回 0;|:按位...

  • &按位与

    作为一个前端转node开发的童鞋,每次碰到&这个操作符,都要纠结很久,这是什么意思? 先将两个数字转换成二进制,按...

  • 按位与(&)按位或(|)按位异或(^)按位取反(~)左移

    看源码期间遇到了取反(~),就做个记录。 基础知识: 1. and(&)运算 (按位与) and运算通常用于二进制...

  • &(按位与) |(按位或) ^(异或)

    不论是&、|还是^都是以二进制的形式进行比较 &(按位与) |(按位或) ^(异或)

  • Java 按位或、按位与、按位取反的妙用

    文章摘要:1、按位或:给指定位设定为1;2、按位与:清零、取特定位; 一、按位或的作用用途:给指定位设定为1;其中...

  • C:按位与、按位或、按位异或运算

    一、按位与 & 1.概念:参加运算的两个对象,按二进制位进行“与”运算,负数按补码形式参加按位与运算。2.规则 3...

  • ~ 按位取反<< 左移 右移<<= 左移并赋值= 右移并赋值& 按位与^ 按位异或| 按位或&= 按位与赋值^...

  • 位运算

    名称符号 按位与 & 按位或 | 按位异或 ^ 按位取反 ~ 左移运算 << 右移运算 >> &按位与的用法(相同...

  • 位运算

    Java中的按位操作符有四个,分别是:&(按位与)、|(按位或)、^(按位异或)、~(按位非)。 1、先来看按位与...

网友评论

      本文标题:&按位与

      本文链接:https://www.haomeiwen.com/subject/vujprftx.html