javascript的位操作、整数、二进制
2015-07-16 16:30
225 查看
位与(x&y):对操作数进行二进制与的操作,如果两个操作数的某一位两个都为1,将对应的结果位设为1。
0x0007 & 0x0003 = 0x0003
\
一个小型年老棕色的狗:64 + 16 + 8 + 2 = 90
搜索一个有特定标记的宠物,只需要和搜索值进行位与操作。
位非(~x):对所有位进行取反(如果操作数是有符号整数(最左位为符号位),则~操作符等于取负减1)。
11100111 取反为 00011000
位左移(x<<numBits):对x的二进制向左移numBits位。所有位向左移,最左位丢失,0填补最右的位。等价于无符号整数的乘法 x*(2^numBits)
0x0007 & 0x0003 = 0x0003
\
一个小型年老棕色的狗:64 + 16 + 8 + 2 = 90
搜索一个有特定标记的宠物,只需要和搜索值进行位与操作。
| 0x0003 = 0x0007 位异或(x^y):对操作数进行二进制异或的操作,如果两个操作数的某一位只有一个为1,将对应的结果位设为1。 0x0001 ^ 0x0000 = 0x0001 0x0001 ^ 0x0001 = 0x0000 //toggle在0和1之间转换(假设开始toggle等于0或者1) toggle ^= 1; toggle = toggle ? 0 : 1;
位非(~x):对所有位进行取反(如果操作数是有符号整数(最左位为符号位),则~操作符等于取负减1)。
11100111 取反为 00011000
位左移(x<<numBits):对x的二进制向左移numBits位。所有位向左移,最左位丢失,0填补最右的位。等价于无符号整数的乘法 x*(2^numBits)
y = 5 >> 1; // y=5; => Math.floor(5/(2^1)) y = 5 >> 2; // y=2; => Math.floor(5/(2^2)) y = 5 >> 3; // y=1; => Math.floor(5/(2^3)) x = y >> 0; //是一个快速的 x = Math.floor(y)
相关文章推荐
- 《JavaScript设计模式与开发实践》读书笔记之代理模式
- doT js模板入门 3
- 学习Javascript闭包(Closure)
- sprigmvc中jsp页面读取js文件
- Javascript作用域问题的构造函数的变量
- JSP编程的基本知识
- 让Json和Model相处的融洽点
- nsjsonserialization 三个枚举值的用法
- js 图片懒加载
- JS组装 HTML片段 列表 ul li
- Js获取当前日期时间及其它操作
- JS判断手机访问
- js整理
- 《JavaScript设计模式与开发实践》读书笔记之策略模式
- AJAX样例及返回值json解析
- geekpark.js
- c# json 解析
- js金额转换三位加上逗号分隔保留小数
- JS高级程序设计8-BOM
- JavaScript (二)