js 二进制运算符

|、&、~、^运算符

二进制计算里面
| 两数同位是0对应位才是0

1|2 = (0001 或 0010) = 0011 = 3

&两数同位是1对应位才是1

1&2 = (0001 且 0010) = 0000 = 0

^两数同位相同都取0,不同都取1

1^2 = (0001 异或 0010) = 0011 = 3

~每位取反的补码

~2 = 11101(补) = 10010(原)+1 = -(2+1) = -3
补码的转换规则是:最左符号位不变,其余位取反再加1

二进制位运算都是整数运算,计算前都会进行取整,所以可以巧用位运算符来小数取整

~~2.345 = 2
0|3.222 = 3

还有移位运算符,但是平时很少用到
<< 左移运算符
>> 右移运算符

一些javascript的技巧(http://www.haorooms.com/post/js_shiyong_one)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 高级运算符(Advanced Operators) 本文参考自苹果官方文档Advanced Operators本页...
    果啤阅读 5,510评论 1 5
  • 本章将会介绍 模块和源文件访问级别访问控制语法自定义类型子类常量、变量、属性、下标构造器协议扩展泛型类型别名位运算...
    寒桥阅读 4,410评论 0 2
  • 一、ECMAScript 一元运算符 一元运算符只有一个参数,即要操作的对象或值。它们是 ECMAScript 中...
    耦耦阅读 3,529评论 0 0
  • 高级运算符 文档地址 作为 基本运算符 的补充,Swift 提供了几个高级运算符执行对数传值进行更加复杂的操作。这...
    hrscy阅读 4,288评论 0 2
  • 我们总是把对别人的关心当做自己的伟大,最终将自己感动,其实,我们做那么多有的没的的事,不过是为了感动自己,因为除了...
    无言无心94阅读 1,267评论 0 0