• 金沙存1送18_金沙存1送18【官网】》》》》》》

  • 发布时间:2016-01-20 14:08 | 作者:yc | 来源:互联网 | 浏览:1200 次
  • 金沙存1送18_金沙存1送18【官网】》》》》》》

    3. 按位或( OR)

    按位或操作符由一个竖线符号( |)注解,一样也有两个操作数

    1. 按位非( NOT)

    按位非操作符由一个波涛线( ~)注解,实行按位非的成果等于回来数值的反码按位非是

    ECMAScript 操作符中少量几个与二进制核算有关的操作符之一下面看一个比如:

    var num1 = 25; // 二进制 01

    var num2 = ~num1; // 二进制 10

    金沙存1送18_金沙存1送18【官网】》》》》》》

    alert(num2); // -26

    这儿,对 25 实行按位非操作,成果获得了26这也验证了按位非操作的实质:操作数的负值减 1

    因而,下面的代码也能获得一样的成果:

    var num1 = 25;

    var num2 = -num1 - 1;

    alert(num2); // "-26"

    只管以上代码也能回来一样的成果,但因为按位非是在数值注解的最底层实行操作,因而速率更快

    2. 按位与( AND)

    按位与操作符由一个和号字符( &)注解,它有两个操作符数从实质上讲,按位与操作等于将两

    个数值的每一位对齐,然后依据下表中的规矩,对一样方位上的两个数实行 AND 操作:

    按位与操作只在两个数值的对应位都是 1 时才回来 1,任何一位是 0,成果都是 0

    下面看一个对 25 和 3 实行按位与操作的比如:

    var result = 25 & 3;

    alert(result); //1

    可见,对 25 和 3 实行按位与操作的成果是 1为何呢?请看其底层操作:

    25 = 0000 0000 0000 0000 0000 0000 0001 1001

    3 = 0000 0000 0000 0000 0000 0000 0000 0011

    ---------------------------------------------

    AND = 0000 0000 0000 0000 0000 0000 0000 0001

    原先, 25 和 3 的二进制码对应位上只要一位一路是 1,而其他位的成果天然都是 0,因而毕竟成果

    即是 1按位或操作服从下面这个真值表

    第一个数值的位 第二个数值的位 结 果

    1 1 1

    1 0 1

    0 1 1

    0 0 0

    由此可见,按位或操作在有一个位是 1 的环境下就回来 1, 而只要在两个位都是 0 的环境下才回来 0

    要是在前面按位与的比如中对 25 和 3 实行按位或操作,则代码如下所示:

    var result = 25 |www.22eee 3;

    alert(result); //27

    42 第 3 章 基础观点

    25 与 3 按位或的成果是 27:

    25 = 0000 0000 0000 0000 0000 0000 0001 1001

    3 = 0000 0000 0000 0000 0000 0000 0000 0011

    --------------------------------------------

    OR = 0000 0000 0000 0000 0000 0000 0001 1011

    这两个数值的都包括 4 个 1,因而能够把每个 1 直接放到成果中二进制码 11011 即是十进制值 27

    4. 按位异或( XOR)

    按位异或操作符由一个刺进符号( ^)注解,也有两个操作数以下是按位异或的真值表

    第一个数值的位 第二个数值的位 结 果

    1 1 0

    1 0 1

    0 1 1

    0 0 0

    按位异或与按位或的不合之处在于,这个操作在两个数值对应位上只要一个 1 时才回来 1,要是对

    应的两位都是 1 或都是 0,则回来 0

    对 25 和 3 实行按位异或操作的代码如下所示:

    var result = 25 ^ 3;

    alert(result); //26

    25 与 3 按位异或的成果是 26,其底层操作如下所示:

    25 = 0000 0000 0000 0000 0000 0000 0001 1001

    3 = 0000 0000 0000 0000 0000 0000 0000 0011

    ---------------------------------------------

    XOR= 0000 0000 0000 0000 0000 0000 0001 1010

    这两个数值都包括 4 个 1,但第一位上则都是 1,因而成果的第一位变成了 0而其他位上的 1 在另

    一个数值中都没有对应的 1 ,能够直接放到成果中二进制码 11010 即是十进制值 26(把稳这个成果比

    实行按位或时小 1)

    5. 左移

    左移操作符由两个小于号( )注解,这个操作符会将数值的统统位向左移动指定的位数例如,

    要是将数值 2(二进制码为 10)向左移动 5 位,成果等于 64(二进制码为 ),代码如下所示:

    var oldValue = 2; // 即是二进制的 10

    var newValue = oldValue 即是二进制的 ,十进制的 64

    把稳,在向左移位后,原数值的右侧多出了 5 个空位左移操作会以 0 来添补这些空位,以便获得

    的成果是一个齐全的 32 位二进制数

    把稳,左移不会影响操作数的符号位换句话说,要是将2 向左移动 5 位,成果将是64,而非 64

    6. 有符号的右移

    有符www27seba.com号的右移操作符由两个大年夜于号( >>)注解,这个操作符会将数值向右移动,但保存符号位(即

    正负号符号)有符号的右移操作与左移操作正好相反,即要是将 64 向右移动 5 位,成果将变回 2:

    var oldValue = 64; // 即是二进制的

    var newValue = oldValue >> 5; // 即是二进制的 10 ,即十进制的 2

    一样,在移位历程中,原数值中也会出现空位只不过此次的空位出现在原数值的左边、符号位的

    右侧(见图 3-3)而此刻 ECMAScript 会用符号位的值来添补统统空位,以便获得一个齐全的值

    这篇文章出自 “” 博客,请必须保存此出处http://.blog.51cto.com//

  • 相关内容

友情链接: