《JavaScript高级程序设计》笔记(2):位操作符
1.按位非(NOT)
2.按位与(AND)
3.按位或(OR)
4.按位异或(XOR)
5.左移
6.有符号右移
7.无符号右移
------------------------------------------------------------------------------------------------------------------------------------------------------------------
1.按位非(NOT):
符号:~
功能:返回数值的反码。
var num1 = 25; //二进制00000000000000000000000000011001
var num2 = ~num1; //二进制11111111111111111111111111100110
alert("num2"); //-26
操作数的负值减1。因此下面的代码也能得到相同的结果:
var num1 = 25;
var num2 = -num1 -1;
alert(num2); // "-26"
按位非是在数值底层操作,因此速度更快。
2.按位与(AND):
符号:&
功能:只在两个数值的对应都是1时才返回1,任何一位是0,结果都是0。如下表:
| 第一个数值 | 第二个数值 | 结果 |
|---|---|---|
| 1 | 1 | 1 |
| 1 | 0 | 0 |
| 0 | 1 | 0 |
| 0 | 0 | 0 |
var result = 25 & 3;
alert(result); //
3.按位或(OR):
符号: |
功能:在有一个位是1的时候就返回1,而只有在两个位都是0的情况下才返回0。
| 第一个数值 | 第二个数值 | 结果 |
|---|---|---|
| 1 | 1 | 1 |
| 1 | 0 | 1 |
| 0 | 1 | 1 |
| 0 | 0 | 0 |
var result = 25 | 3;
alert(result); //
4.按位异或(XOR):
符合:^
功能:在两个位对应只有一个1的时候才返回1,如果对应的两个位是1或0时返回0。
| 第一个数值 | 第二个数值 | 结果 |
|---|---|---|
| 1 | 1 | 0 |
| 1 | 0 | 1 |
| 0 | 1 | 1 |
| 0 | 0 | 0 |
var result = 25 ^ 3;
alert("result"); //
5.左移:
符号:<<
功能:所有位向左移,右边空出来的用0补。
var oldValue = 2; //二进制的10
var newValue = oldValue << 5; //等于二进制的1000000,十进制到底64
左移不影响操作数的符号位。
6.有符号右移:
符号:>>
功能:将数值向右移动,保留符号位(正负号),左侧的空位用符号位来填充。
var oldValue = 64; //二进制的1000000
var newValue = oldValue >> 5; //等于二进制的10,即十进制的2
7.无符号右移:
符号:>>>
功能:正数,同有符号右移;负数,用0填充空位,而不是像正数(有符号右移)以符号位填充空位。
var oldValue = -64;
var newValue = oldValue >>> 5;
《JavaScript高级程序设计》笔记(2):位操作符的更多相关文章
- JavaScript高级程序设计笔记(一)
---恢复内容开始--- 前三章为基础知识,为了方便以后查看,所以比较啰嗦.这里对函数的基本操作没有记录. 1.JavaScript的实现 虽然 JavaScript 和 ECMAScript 通常都 ...
- javascript高级程序设计--笔记01
概述 JavaScript的实现包含三个部分: 1 核心(ECMAScript) 提供核心语言功能 2 文档对象模型(DOM) 一套提供了访问以及操作网页内容的API 3 浏览器对象模型( ...
- javaScript高级程序设计笔记 1
核心 ECMAScript 文档对象模型 DOM 浏览器对象模型 BOM 延迟脚本 defer typeof操作符 判断字符类型 返回 undefined boolean s ...
- JavaScript高级程序设计笔记之面向对象
说起面向对象,大部分程序员首先会想到 类 .通过类可以创建许多具有共同属性以及方法的实例或者说对象.但是JavaScript并没有类的概念,而且在JavaScript中几乎一切皆对象,问题来了,Jav ...
- <javascript高级程序设计>笔记
1.要讲一个值转换成其对应的Boolean类型 ,可以调用转型函数Boolean(). var message=“hello world!”; var messageAsBoolean=Boolean ...
- javascript事件小结(事件处理程序方式)--javascript高级程序设计笔记
1.事件流:描述的是从页面中接收事件的顺序. 2.事件冒泡:IE的事件流叫做事件冒泡,即事件开始从具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上传播到不具体的节点(文档). 3.事件捕获 ...
- Javascript高级程序设计笔记 <第五章> 引用类型
一.object类型 创建object实例的方式有两种: //第一种使用new操作符跟构造函数 var person= new Object(); person.name="小王" ...
- JavaScript高级程序设计笔记 事件冒泡和事件捕获
1.事件冒泡 要理解事件冒泡,就得先知道事件流.事件流描述的是从页面接收事件的顺序,比如如下的代码: <body> <div> click me! </div> & ...
- javaScript高级程序设计笔记 2
Undefinde Null Boolean Number String 基本类型 Object 引用类型 只有引用类型才能动态的添加属性 赋值基本类型和引用类型也不相同,复制的基本类型的 ...
- Javascript高级程序设计笔记(很重要尤其是对象的设计模式与继承)
var obj = {'a':'a'}; var fun = function (){} console.log(typeof obj);//object console.log(typeof fun ...
随机推荐
- oc学习之路----通过代码自定义cell
需求背景:由于tableView中每一个cell的数据与布局都不一样,故不能用xib实现功能,这是用代码写自定义cell就有必要了. 步骤 1.新建一个继承自UITableViewCell的类 2.重 ...
- Away3D 的实体收集器Bug
最近在改Away3D源码的时候遇到个很郁闷的问题,发现创建的Mesh 释放不掉. 分析源码发现 EntityListItemPool 类中逻辑Bug在getItem()函数中发现_poolSize 对 ...
- UIImage的使用
UIImage是IOS中层级比较高的一个用来加载和绘制图像的一个类,更底层的类还有CGImage,以及IOS5.0以后新增加的CIImage.今天我们主要聊一聊UIImage的三个属性: imageO ...
- linux中配置Java环境
一. 下载JDK 下载linux版本的jdk32(64) 二. 需要配置的环境变量 1. PATH环境变量.作用是指定命令搜索路径,在shell下面执行命令时,它会到PATH变量所指定的路径中查找看是 ...
- 用gooreplacer来加速你的浏览器
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:用gooreplacer来加速你的浏览器.
- Identity-第二章
运用Asp.Net Identity 问题 解决方案 清单号 准备用户认证的应用程序 运用Authorize注解属性来限制对动作方法的访问,并定义一个对用户重定向的控制器,以便让用户提供凭据 1–4 ...
- 获取datagrid中编辑列combobox的value值与text值
var ed = $('#dg').datagrid('getEditor', {index:editIndex,field:'productid'}); var productname = $(ed ...
- 算法基础:最大递减数问题(Golang实现)
给出一个非负整数,找到这个非负整数中包括的最大递减数.一个数字的递减数是指相邻的数位从大到小排列的数字. 如: 95345323,递减数有:953,95,53,53,532,32, 那么最大的递减数为 ...
- Android开源工具库
一.依赖注入DI 通过依赖注入降低View.服务.资源简化初始化,事件绑定等反复繁琐工作 1. AndroidAnnotations(Code Diet) android高速开发框架 项目地址:htt ...
- ListView视图缓存错位问题
由于之前写Scroller应用:ListView滑动删除遇到Item视图错位问题,观察发现第1item位置改变后,第1+10的item布局也跟着改变.假设使用ScrollView+ListView,把 ...