javascript——操作符(~、&、|、^、<<、>>)
直接上代码吧!
- <script type="text/javascript">
- //javascript操作符
- //1、按位非~
- var num1=25;//
- var num2=~num1;//
- alert(num2)
- var num3=10;
- var num4=~num3;
- alert(num4)
- var num5=99;
- var num6=~num5;
- alert(num6)
- //说明:相信大家也已经看出来了按位~(NOT)的实现原理:
- //以num1、num2为讲解对象
- //第一步:先把num1转换成二进制
- //第二步:取得num1二进制的反码赋值给num2
- //第三步:在把num2换算成十进制数字
- //简单说明:就是把操作数的数值的负数减1
- //2、按位与 &(AND)
- var result=25 & 3;
- alert(result);//
- //说明,就是把两数转换成二进制数字,按照一定的规则:
- //第一个数值的位 第二个数值的位 结果
- // 1 1 1
- // 1 0 0
- // 0 1 0
- // 0 0 0
- //简而言之,按位操作符的相对应的位都是1时则返回1,任何一位是0则返回0.
- //然后在得到的二进制转换成十进制数字
- // 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
- //3、按位或 |(OR)
- var result=25 | 3;
- alert(result);//
- //说明,就是把两数转换成二进制数字,按照一定的规则:
- //第一个数值的位 第二个数值的位 结果
- // 1 1 1
- // 1 0 1
- // 0 1 1
- // 0 0 0
- //简而言之,按位操作符的相对应的位有一位是1就返回1,而只有在两个位都是0的情况下才返回0.
- //然后在得到的二进制转换成十进制数字
- // 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、按位异或 ^(XOR)
- var result= 25 ^ 3;
- alert(result);//
- //说明,就是把两数转换成二进制数字,按照一定的规则:
- //第一个数值的位 第二个数值的位 结果
- // 1 1 0
- // 1 0 1
- // 0 1 1
- // 0 0 0
- //简而言之,这个操作符(^)在两个数值对应位上只有一个1时才返回1,否则返回0.
- //然后在得到的二进制转换成十进制数字
- // 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
- //5、左移(<<)
- var oldNum=2;
- var newNum=oldNum << 5;
- alert(newNum)
- //说明,将2(二进制数码10)向左移5位结果就是1000000(二进制)等于64
- //注意,左移不会影响操作符的符号位,例如将-2左移5位就是-64
- //2=0000 0000 0000 0000 0000 0000 0000 0010
- //64=0000 0000 0000 0000 0000 0000 010 00000
- //6、有符号右移(>>)
- var oldNum=64;
- var newNum=oldNum >> 5;
- //64=0000 0000 0000 0000 0000 0000 010 00000
- //2=0000 0000 0000 0000 0000 0000 0000 0010
- alert(newNum)
- </script>
javascript——操作符(~、&、|、^、<<、>>)的更多相关文章
- javascript 操作符类型隐性转换
javascript 操作符类型隐性转换 (一).一元操作符只能操作一个值的操作符叫做一元操作符1.递增和递减操作符a. 在应用于一个包含有效数字字符的字符串时,先将其转换为数字值,再执行加减1的操作 ...
- JavaScript操作符(一元操作符)
JavaScript操作符包括算术操作符.位操作符.关系操作符和相等操作符.只能操作一个值的操作符叫做一元操作符. 递增和递减操作符 递增和递减操作符有两个版本:前置型和后置型.前置型操作符位于要操作 ...
- JavaScript操作符汇总
操作符 JavaScript 有赋值.比较.算术.位.逻辑.字符串和特殊运算符.本章描述了操作符,以及关于操作符优先级的一些信息. 表 2.1 JavaScript 所有操作符简明列表. 表 2.1 ...
- JavaScript操作符-3---算数,逻辑,赋值,比较,三元
JavaScript操作符 学习目标 1.掌握什么是表达式 2.掌握javascript操作符的分类 3.掌握算数操作符 什么是表达式 将类型的数据(如常量.变量.函数等),用运算符号按一定的规则链接 ...
- JavaScript操作符(=?,)优先级
JavaScript操作符优先级: 关于最后3个运算符的优先级比较,下面通过一个实例来具体说明: var a,b,c; a = 3,4,5; b = a--,--a,a; c = a ? b++ : ...
- JavaScript 操作符 变量
一.操作符: 一元操作符 递增操作符 递减操作符 分为 前置型(--a ++a) 和 后置型 (a-- a++) 区别如下: var a = 3,b=6; c = --a +b; //c= ...
- JavaScript操作符(布尔操作符、乘性操作符和加性操作符)
布尔操作符 布尔操作符用来测试两个值的关系,布尔操作符有三个,逻辑非(!).逻辑与(&&),逻辑或(||). 逻辑非由一个叹号(!)组成,可以应用于JavaScript任何值.逻辑非首 ...
- Javascript - 操作符
操作符(Operator) void 如果void后是数字,就返回NAN,否则返回Undefined. alert(void "hello");//跟的字符 print undef ...
- javascript 操作符小结
简单总结一下JavaScript的几个操作符: var. in. delete. typeof. new. instanceof.void var 定义变量要使用var操作符, 使用var操作符定义的 ...
随机推荐
- NOI题库7624 山区建小学(162:Post Office / IOI2000 POST OFFICE [input] )
7624:山区建小学 Description 政府在某山区修建了一条道路,恰好穿越总共m个村庄的每个村庄一次,没有回路或交叉,任意两个村庄只能通过这条路来往.已知任意两个相邻的村庄之间的距离为di(为 ...
- 2013=7=29 nyist 13题
Fibonacci数 时间限制:3000 ms | 内存限制:65535 KB 难度:1 描述 无穷数列1,1,2,3,5,8,13,21,34,55...称为Fibonacci数列,它可以递归地 ...
- 不使用OCI8接口如何连接PHP和Oracle
随着网站规模的扩大,MySql显然不能满足需求,在许多网站都 采用大型数据库Oracle的情况下,如何使用PHP来访问Oracle变的越发重要了. 我从我编写的一个简单iERP系统谈我自己是如何做 ...
- Error: rpmdb open failed
yumrpmdb: Thread/process 17132/140266190264064 failed: Thread died in Berkeley DB l ...
- OPC客户端的进程安全初始化
现场OPC客户端无法获取远程OPC Server列表,也无法连接OPC Server,经查调用CoCreateInstanceEx()创建IID_IOPCServerList接口正常,但调用IOPCS ...
- C语言中数据类型转换的学习
1. 整型和枚举类型数据的转换 测试代码如下: #include <stdio.h> typedef enum _E_TYPE_T { E_TYPE_1 = -1, E_T ...
- bootbox.js [v4.2.0]设置确认框 按钮语言为中文
Bootbox.js (http://bootboxjs.com/)是一个小型的 JavaScript 库用来创建简单的可编程对话框,基于 Twitter 的 Bootstrap 开发. 弹出确认框方 ...
- JUnit-4.11使用报java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing错误
今天尝试使用JUnit,下载了最新的JUnit版本,是4.11,结果尝试使用发现总是报java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribi ...
- iOS开发-No matching provisioning profiles found解决方法
今天真机调试的时候莫名其妙遇到了这种一个问题: This product type must be built using a provisioning profile, however no pro ...
- Raspberry Pi + 3个USB摄像头 + Motion(简易监控设备配置记录1——介绍以及安装) 分类: Raspberry Pi 服务器搭建 2015-04-12 19:21 226人阅读 评论(0) 收藏
参考: Debian官网链接 Motion官网链接 首先,参见Debian官网链接对Motion的介绍,网页中包含了所有相关依赖包,请首先确保这些依赖包的安装. Motion介绍 摘出对Motion的 ...