js的位运算(其它语言也通用)

  1. 左移运算符(<<)

    该运算符有2个运算数,a<<b,将a左移相当于a乘以2的b次方,2个运算符要求是整数,或可以转换成整数的。

    如:1<<2 =4

    "1"<<2=4

5<<3=40

当运算符无法转换成整数时,运算结果为0

如:{}<<2 =0

NAN<2 =0

当运算数B无法转换成整数时,运算结果为 a

如:2<<{} =2

20<<NAN =20

当运算数a和b 均无法转换成整数时,结果为0

如:"a"<<Infinity =0

NAN<<NAN =0

2. 右移运算符 (>>)

该运算符有2个运算数,a>>b,将a右移b位,相当于Math.floor(a/2 的b次方)

如: 7>>1 =3

-7>>1 =-4

NAN>>1 =0

1>>NAN=1

3.用0补足的右移运算符 (>>>)

如: "a">>>2 =0

"a">>>NAN =0

20>>>NAN=20

JS中如上。其它如java c c++ 大体也相同

时间: 2024-11-10 13:44:11

js的位运算(其它语言也通用)的相关文章

js中位运算的运用

原文:js中位运算的运用 我们可能很少在编程中用位运算,如果没深入学习,可能也很难理解.平时的数值运算,其实是要先转换成二进制再进行运算的,而位运算就是直接进行二进制运算,所以位运算的执行效率肯定是更高的.下面通过一些实例来加深对位运算的理解. 按位与(&) &&运算符我们都知道,只有两个都为真,结果才为真.&道理是一样的,只有两个数的值为1时,才返回1.例如1和3的按位与操作: 0001 & 0011 --------- 0001 只有对应的数为1时,结果才为1,

Apriori算法-位运算-C语言

原文地址:http://blog.csdn.net/liema2000/article/details/6118423 ///////////////////////////////////////////////////////////////////////////** 文件名称:FAST apriori.cpp * 摘 要:采用位运算提高算法的效率 * 将每一项抽象为数值,通过与运算判断是否存在,abcde为16,8,4,2,1换成2进制,各占一个位置,互相不干扰.局限于字母.换算的比较字

js语言的位运算符(其他语言也通用)

一.左移运算符(<<) 1.1 该运算符有2 个运算数,        a<<b,         将a左移相当于a左移2 的b次方,        2个运算符要求是整数,或可以转换成整数的. eg: 2<<2=8 5<<2=20 "1"<<2=4 二.右移运算符(>>) 1.1  该预算符有2个运算数,    a>>b ,    将a右移b位,      相当于,    Math.floor(a/2的

位运算的妙用

位运算所有语言里面都有位运算,&,|,^,~,<<,>>,>>>,但是其他语言不清楚,前端估计许多人直接一扫而过,甚至把这玩意和逻辑或与混淆,甚至有的不认识<<,>>>,问这什么意思的那是许多许多.由于这个运算属于底层的二进制的运算,不做详解(详解的话,阅读不易,而且许多人功力不够),只讲一些常用的,(注意位运算性能更好,且容易装逼,稳重的装逼)1.判断奇偶数常用的(a%2!=0)位运算 if(a&1){奇数}原理:任

JavaScript 位运算笔记

之前一直以为,在js的位运算中,双精度浮点数在内部会先被转成32位整数,再执行位运算,然后再转为64位数值,因此效率极低.今天实验发现,对浮点执行位运算只会导致数值不准确,而不会导致效率低下,相比乘法,左移位要快66%(其实就是浮点运算与整数运算的差距). 以下结果在 IE 7 ~ IE 10 上测试得出 技巧1:移位运算比乘除法快(当因数是2的幂数) b = a << 1; //大概快 6.8% 技巧2:奇偶判断 b = a & 1; //0位与1相与,相比于 x % 2,大概快 3

c语言位运算详解

位运算是指按二进制进行的运算.在系统软件中,常常需要处理二进制位的问题.C语言提供了6个位操作运算符.这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型. C语言提供的位运算符列表: 运算符含义描述 & 按位与      如果两个相应的二进制位都为1,则该位的结果值为1,否则为0 | 按位或      两个相应的二进制位中只要有一个为1,该位的结果值为1 ^ 按位异或    若参加运算的两个二进制位值相同则为0,否则为1 ~ 取反        ~

C语言位运算

在计算机程序中,数据的位是可以操作的最小数据单位,理论上可以用“位运算”来完成所有的运算和操作.一般的位操作是用来控制硬件的,或者做数据变换使用,但是,灵活的位操作可以有效地提高程序运行的效率.C语言提供了位运算的功能, 这使得C语言也能像汇编语言一样用来编写系统程序. 位运算符C语言提供了六种位运算符: & 按位与 | 按位或 ^ 按位异或 ~ 取反 << 左移 >> 右移 位运算 1.位与&

嵌入式linux C语言(一)——位运算的使用

嵌入式linux C语言(一)--位运算的使用 ARM是内存与IO统一编址,SoC中有很多控制寄存器,通过对这些寄存器进行位运算对这些控制寄存器进行设置,进而控制外设功能.在修改寄存器某些位的过程中不能修改其他的位. 一.位运算基础 C语言基本的位操作符有与.或.异或.取反.左移.右移六种位运算符.如下表所示: 符号 描述 运算规则 & 与 两个位都为1时,结果才为1 | 或 两个位都为0时,结果才为0 ^ 异或 两个位相同为0,相异为1 ~ 取反 0变1,1变0 << 左移 各二进位

深入理解计算机系统(2.2)---布尔代数以及C语言上的位运算

本文转载地址:http://www.cnblogs.com/zuoxiaolong/p/computer6.html 布尔代数上的位运算 布尔代数是一个数学知识体系,它在0和1的二进制值上演化而来的. 我们不需要去彻底的了解这个知识体系,但是里面定义了几种二进制的运算,却是我们在平时的编程过程当中也会遇到的.这四种运算分别是或.与.非和异或.下图展示了在布尔代数的知识体系中,对这四种运算的定义. 从左至右依次是非.与.或以及异或.这个图阐述的是针对一位二进制的运算结果,我们可以将其扩大到N位二进