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操作符定义的 ...
随机推荐
- 转-----实现基本的Ajax和Json请求
前面已经封装好了一个方法ajax(),通过这个方法可以实现Ajax请求,接下来就是给出 例程来测试这个方法和实现简单的功能. 视图的部分代码如下: 1 2 3 4 5 6 7 8 9 <bo ...
- (转载)MySQL关键字ORDER BY的使用
例子: mysql), d_id ), name ), age ), sex ), homeaddr )); // 可以看到首先按照d_id进行升序排列,排列好了之后, // 若d_id字段中有相同的 ...
- HDOJ(HDU) 2519 新生晚会(组合公式)
Problem Description 开学了,杭电又迎来了好多新生.ACMer想为新生准备一个节目.来报名要表演节目的人很多,多达N个,但是只需要从这N个人中选M个就够了,一共有多少种选择方法? I ...
- ASP.net:截取固定长度字符串显示在页面,多余部分显示为省略号
方法一: public static string GetString(string str, int length) { int i = 0, j = 0; foreach(char chr in ...
- bzoj 1096 [ZJOI2007]仓库建设(关于斜率优化问题的总结)
1096: [ZJOI2007]仓库建设 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 3234 Solved: 1388[Submit][Stat ...
- 用Objective-C的Category特性添加类的属性
http://www.cnblogs.com/wupher/archive/2013/01/05/2845338.html Category是Objective-C中常用的语法特性,通过它可以很方便的 ...
- zabbix 飞信集成配置
1.环境说明: (Gentoo Linux环境) # uname -a Linux Crob 2.6.34-gentoo #1 SMP Mon May 31 15:45:25 CST 2010 x86 ...
- kickStart脚本
kickstart是什么 许多系统管理员宁愿使用自动化的安装方法来安装红帽企业 Linux.为了满足这种需要,红帽创建了kickstart安装方法.使用kickstart,系统管理员可以 ...
- system2之:4-LVM逻辑卷管理
LVM有扩容功能,无容错功能 物理卷: [root@localhost ~]# pvscan PV /dev/sda2 VG VolGroup lvm2 [19.51 GiB / 0 ...
- Android Studio打包签名全过程
Step1:Build-----Generate Step2:签名文件保存位置,习惯性的保存在项目的根目录下E:\Users\StudioProject\SmartHust\smarthust.jks ...