• javascript 位操作符


    提要:位操作符逻辑上可能要复杂一点因为习惯了使用十进制,而位操作符是基于二进制,由于机器更容易理解二进制语言,所以使用二进制的目的是提高运算速度。

    (1)位非操作符:表示为 ~a 理解起来很简单就是转为二进制然后每一位这样操作如果是0换成1如果是1换成0,其操作结果的十进制表示相当于-a-1。

    (2)位与操作符:标识为 a&b,计算法则是先把a,b转换成二进制,对齐,然后对a,b的同一位置进行比较,比较规则是0 0 ->0, 0 1->1, 1 0->1, 1 1->1,可以通过a&1来判断a的奇偶。

    (3)异或操作符:表示为a^b, 计算法则是先把a,b转换成二进制,对齐,然后对a,b的同一位置进行比较,比较规则是0 0 ->0, 0 1->1, 1 0->1, 1 1->0,可以用来加密数字a^b^b=a。

    (4)左移操作符:表示为a<<b,计算法则是把a转换成二进制,然后把二进制后面加b个1,可以用来代替部分乘法比如:3*8 -》 3<<3。

    (5)右移操作符:表示为a>>b,计算法则是把a转换成二进制,然后把二进制从后往前去掉b位,可以用来代替部分除法比如:100/16 -》 100>>4。

    除了以上用法,位操作符还可以用来:

    1、两个数做交换:c=a^b, a=c^a, b=c^b.

    2、判断两个数是否相等:a^b=0则a=b。

  • 相关阅读:
    POJ4046 Sightseeing
    SGU 298. King Berl VI
    POJ1741 Tree
    POJ1639 Picnic Planning
    POJ1635 Subway tree systems
    [JSOI2008]最小生成树计数
    ftrace使用简介(三)
    make: *** 没有规则可以创建目标"menuconfig". 停止
    编译linux内核(ftrace)
    vim 缩进配置
  • 原文地址:https://www.cnblogs.com/xizhenghe/p/8486742.html
Copyright © 2020-2023  润新知