Javascript--位运算符

1.NOT

位运算符NOT由~表示.NOT运算符的实质是对数字求负,然后减1.

位运算符NOT是三步的处理过程.

a.把运算符转换成32位数字

b.把二进制形式转换成它的二进制反码

c.把二进制反码转换成浮点数

例子:

        var num=10;
        document.write(~num);
结果:
-11
2.AND
位运算符AND由&表示.直接对数字的二进制形式进行运算.运算规则如下:
第一个数字 第二个数字 结果
0 0 0
0 1 0
1 0 0
1 1 1

例子:

        var num1=10;

结果:

10的二进制表示1010

3.OR

位运算符OR由符号|表示.直接对二进制进行运算,规则如下:

第一个数字 第二个数字 结果
0 0 0
0 1 1
1 0 1
1 1 1

例子:

        var num1=10;

结果:

11的二进制表示是1011

4.XOR

位运算符XOR由符号^表示.直接对二进制进行运算.规则如下:

第一个数字 第二个数字 结果
0 0 0
0 1 1
1 0 1
1 1 0

例子:

        var num1=10;

结果:

1的二进制表示是1

5.<<

左移运算符由<<表示.它把数字中所有位数向左移动指定的数量.

注意:

a.在左移数位时,数字右边的空位由0来填充,使结果是完整的32位数字

b.左移操作保留数字的符号位.

例子:

        document.write(10<<2+"<br/>");
        document.write(-10<<2);

效果:

6.>>

有符号右移运算由>>表示.它将32位数字中的所有数字整体右移.同时保留该数的符号.

注意:

a.符号位保持不变

b.在右移数位时,数字左边的空位由0填充

例子:

        document.write(10>>1);
        document.write("<br/>");
        document.write(-10>>1);

效果:

7.>>>

无符号右移由>>>表示.它将32位数字中的所有数字整体右移.

注意:

a.无符号右移运算用0填充所有空位.

b.对于整数,无符号右移和有符号右移结果一样.

c.对于负数,由于左侧补0,导致负数经过无符号右移后,变为一个正数

例如:

       document.write(-10>>>1);

结果:

运算过程:

-10

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0

经过无符号右移-10>>>1

0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1

结果:

2147483643

时间: 2024-08-02 20:50:47

Javascript--位运算符的相关文章

JavaScript位运算符 2

按位运算符是把操作数看作一系列单独的位,而不是一个数字值.所以在这之前,不得不提到什么是“位”: 数值或字符在内存内都是被存储为0和 1的序列,每个0和1被称之为1个位,比如说10进制数据2在计算机内被存储为 0 0 0 0 0 0 1 0,当我们将内存内的位值改变之后,这个值代表的意义也就变了,比如把2前移动一位, 现在存储单元里面变成了0 0 0 0 0 1 0 0,这个值表示的是十进制的4,这也就是按位操作符的运算原理. 按位运算符有6个: & 按位与 |按位或 ^按位异或 ~取反 >

JavaScript位运算符

位运算符是在数字底层(即表示数字的 32 个数位)进行操作的. 重温整数 ECMAScript 整数有两种类型,即有符号整数(允许用正数和负数)和无符号整数(只允许用正数).在 ECMAScript 中,所有整数字面量默认都是有符号整数,这意味着什么呢? 有符号整数使用 31 位表示整数的数值,用第 32 位表示整数的符号,0 表示正数,1 表示负数.数值范围从 -2147483648 到 2147483647. 可以以两种不同的方式存储二进制形式的有符号整数,一种用于存储正数,一种用于存储负数

详解位运算符的一些特点

我们都知道位运算符比正常的运算符速度要快,但是为什么会快呢?首先我们正常的运算符也是通过计算机通过位运算调用栈来实现的. 那么javascript位运算符有哪些呢? 1.          &      按位与             2.          |        按位或 3.          ^       按位异或 4.          ~      取反 5.  >>     按位左移 6.         >>     按位右移 说明: (1)位运算

关于位运算符的计算法方法

我们都知道位运算符比正常的运算符速度要快,但是为什么会快呢?首先我们正常的运算符也是通过计算机通过位运算调用栈来实现的.位运算符计算时,首先将运算量转化为2进制. 那么javascript位运算符有哪些呢? 1.          &      按位与             2.          |        按位或 3.          ^       按位异或 4.          ~      取反 5.  >>     按位左移 6.         >>

javascript(六)运算符

运算符概述 JavaScript中的运算符用于算术表达式. 比较表达式. 逻辑表达式. 赋值表达式等.需要注意的是, 大多数运算符都是由标点符号表示的, 比如 "+" 和"=" . 而另外一些运算符则是由关键字表示的, 比如delete和instanceof. 关键字运算符和标点符号所表示的运算符一样都是正规的运算符. 算术运算符 赋值 y = 5, 以下表格将向你说明算术运算符的使用: 算符 描述 例子 y 值 x 值 + 加法 x = y + 2 y = 5 x

javascript运算符——位运算符

× 目录 [1]二进制 [2]非 [3]与[4]或[5]异或[6]左移[7]右移[8]>>>[9]应用 前面的话 位运算符是非常底层的运算,由于其很不直观,所以并不常用.但是,其速度极快,且合理使用能达到很好的效果.本文将介绍javascript中常常被忽视的运算符——位运算符 二进制表示 ECMAScript中的所有数值都以IEEE-754 64位格式存储,但位操作符并不直接操作64位的值,而是以32位带符号的整数进行运算的,并且返回值也是一个32位带符号的整数 这种位数转换使得在对特

javascript学习笔记---ECMAScript运算符(位运算符)

位运算符是在数字底层(即表示数字的 32 个数位)进行操作的. 位运算 NOT 位运算 NOT 由否定号(~)表示,它是 ECMAScript 中为数不多的与二进制算术有关的运算符之一. 位运算 NOT 是三步的处理过程: 把运算数转换成 32 位数字 把二进制数转换成它的二进制反码 把二进制数转换成浮点数 例如: var iNum1 = 25; //25 等于 00000000000000000000000000011001 var iNum2 = ~iNum1; //转换为 11111111

JavaScript的位运算符、赋值运算符、其他运算符、三元运算符、运算符优先级

一. 位运算符 在一般的应用中,我们基本上用不到位运算符.虽然,它比较基于底层,性能和速度会非常好,而就是因为比较底层,使用的难度也很大,底层运算是转换成二进制进行运算的. 位运算符有七种,分别是:位非 NOT(~).位与 AND(&).位或 OR(|).位异或 XOR(^).左移(<<).有符号右移(>>).无符号右移(>>>). var box = ~25; //-26 var box = 25 & 3; //1 var box = 25 |

Javascript基础--运算符与表达式

一.运算符 1.运算符分类: 按功能:算术运算符:+.-.*./.%.++.-- 例:12+12-11+5*6+20/5+5%2+(5%-2)+(-5++2)+(a++)+(++a)+(--a)+(a--).注意取模运算符中返回结果值和第一个参数正负相关和第二个参数无关. 赋值运算符:= 字符串运算符:+.拼接运算符 逻辑运算符:&&(一非全非),||(一真全真全真) 关系运算符:>.>=.<.<=.==.!=.===.!== 逐位运算符: 其他运算符:条件运算符

JavaScript的运算符(操作符)和优先级

最近因为在读 Underscore.js 的源代码,加上重拾之前没有完成 ife 中的 JavaScript 部分的 task2,其中大量简略的语句写法,尤其喜欢 ?: 这个三目运算符和其他运算符连用.因为对于运算符优先级的概念一直很模糊,然后经常被绕进圈子里面.下面整理下常用的运算符和它们的优先级差异. 一.运算符 1. 一元运算符 (1)  递增递减运算符 主要就是 a++ 和 ++a 的区别,执行前置递增和递减运算时,变量的值都是在语句被求值之前改变的. var num1 = 10; va